Java 扫描仪示例循环
输入值直到输入0为止。然后程序结束,但在此之前,如果所有值都是整数,则给出所有值的总和 这是我到目前为止尝试过的,但我被卡住了Java 扫描仪示例循环,java,loops,methods,integration,java.util.scanner,Java,Loops,Methods,Integration,Java.util.scanner,输入值直到输入0为止。然后程序结束,但在此之前,如果所有值都是整数,则给出所有值的总和 这是我到目前为止尝试过的,但我被卡住了 public class Aufgabe2 { public static void main(String[] args) { /* TODO: add code here */ int n; int sum = 0; boolean exit = true; Scanner
public class Aufgabe2 {
public static void main(String[] args) {
/* TODO: add code here */
int n;
int sum = 0;
boolean exit = true;
Scanner input = new Scanner(System.in);
while (true) {
n = input.nextInt();
if (n == 0) {
exit = true;
} else {
sum += n;
System.out.println(sum);
}
}
}
}
尝试
您有一个
while(true)
,这是一个连续循环。oracle网站上有一些不错的doco on Scanner:
如果您期望的令牌不存在,扫描程序将抛出错误。我建议您在尝试解析前检查整数input.hasNextInt()
大概是这样的:
int sum = 0;
boolean exit = true;
Scanner input = new Scanner(System.in);
while (input.hasNextInt()) {
int n = input.nextInt();
if (n == 0) {
break;
} else {
sum += n;
}
}
// Print outside of the loop
System.out.println(sum);
计划的结果
Input:
1
2
3
0
Output:
6
工作代码:
import java.util.*;
public class Aufgabe2 {
public static void main(String[] args) {
/* TODO: add code here */
int n;
int sum = 0;
boolean exit = false;
Scanner input = new Scanner(System.in);
while (!exit) {
System.out.println("Enter a number:");
n = input.nextInt();
if (n == 0) {
exit = true;
} else {
sum += n;
System.out.println(sum);
}
}
}
}
输出:
Enter a number:
1
1
Enter a number:
3
4
Enter a number:
6
10
Enter a number:
0
编辑:
您必须更改
while(true)
循环以使用布尔变量exit
。我已经相应地修改了代码,并更正了,而循环条件。没有给出任何结果。应该是这样吗?您必须提供输入,不是吗?您正在使用扫描仪从user.OOPS读取输入。我错把你的答案改成了我的。对不起,别担心,我已经修好了,给他代码而不解释它为什么工作对他没有任何帮助。完成。很久以前,当我不了解网站的工作风格时,我已经回答了这个问题。但只要这个答案对OP有用,我很高兴,不管是赞成票还是反对票。
Enter a number:
1
1
Enter a number:
3
4
Enter a number:
6
10
Enter a number:
0