Java 扫描仪示例循环

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

输入值直到输入0为止。然后程序结束,但在此之前,如果所有值都是整数,则给出所有值的总和

这是我到目前为止尝试过的,但我被卡住了

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