【发布时间】:2022-01-15 18:18:14
【问题描述】:
我正在参加赫尔辛基大学的 Java MOOC,有一个练习要求我创建一个程序,让您可以输入任意数量的数字,但是当您输入“0”时,它会打印所有数字的总和之前输入的数字并结束程序。当您输入“0”时,我无法弄清楚如何“存储”输入数字以计算它们的总和。该程序有效,但输入“0”会打印“0”。这就是我的代码的样子:
public class Application {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Input a number.");
while (true) {
try {
int number = Integer.parseInt(scanner.nextLine());
System.out.println("Input another number.");
if (number == 0) {
System.out.println(number + number);
break;
}
}
catch (NumberFormatException e) {
System.out.println("Please input a valid number.");
}
}
}
如何计算所有输入数字的总和?
【问题讨论】:
-
您可以将其存储在列表中吗?列表中元素的总和
-
为什么你需要“存储”它们,而不是
total += number(例如)? -
至于为什么你当前的版本不起作用,想想你的
number变量每次循环时会发生什么。通过不维护对存储值的单独引用并覆盖您的声明正在查看的值,您正在丢弃number的先前循环值。如果您希望在每个新循环之后保留变量,则需要将变量存储在循环之外。