如何关闭 while 循环

How to close a while loop

我认为我的代码是正确的,但是当我 运行 它时,我在底部的输出语句不会产生。我要求键盘输入任意数字,然后输入 -1 结束。我的 while 循环包括添加数字、创建总和以及给出偶数的数量。当我测试我的代码时,我只输入了 1、2、3、4,希望产生 4 个总数。 2 个偶数,总和为 10。为什么我的代码没有进入打印语句?

    public static void main(String[] args) {
    Scanner sc = new Scanner (System.in);
    System.out.println("Please enter a number. Enter -1 to stop    program.");
    int num = sc.nextInt();
    int counter = 0;
    int even = 0;
    int sum = 0; 
    while (num != -1)
    {
        counter += 1;
        sum += num; 
        if (num%2 == 0)
        {
            even +=1;
        }

    }
    System.out.println("You have entered "+ counter + "number(s)");
    System.out.println("You have entered "+ even + "even numbers");
    System.out.println("The sum for the numbers you entered is "+ sum);

}

num 在您进入循环之前设置。

那么,while 循环中的 num 什么时候改变?它没有。这就是您的代码不会退出循环的原因。

我建议移动

num = sc.nextInt();

循环内部。

你永远不会再得到输入所以循环无限运行。您需要重新获取值。

while (num != -1)
{
    ...

    num = sc.nextInt();
}