为什么我的程序在计算偶数时会忽略零?

时间:2016-01-12 18:45:18

标签: java

我在尝试计算偶数整数时遇到问题。

这是我正在使用的代码:

int input=0, numeven=0;
Scanner scan = new Scanner(System.in);

input = scan.nextInt();

while (input != 0)
{
    //calculates the total number of even integers
    if (input%2 != 1)
    {
        numeven = numeven+1;
    }
}

我不知道如何设置while循环:while (input! = 0)

鉴于测试输入6, 4, -2, 0,它表示我有三个偶数,但预期结果是4(因为0是偶数)。

3 个答案:

答案 0 :(得分:3)

如果您希望循环在零上工作,并将其视为退出标记,请从Column A Column B 0270 2.20 1660 1.50 2610 8.00 3568 7.30 切换到while / do

while

这样,您的代码将与常规输入一起处理零,并在到达循环结束时停止读取更多输入。

答案 1 :(得分:2)

当用户输入0或任何其他整数时,你不希望循环中断你希望多次输入0。

int numeven=0;
Scanner scan = new Scanner(System.in);

while (true) {
    String input = scan.next();
    try {
        int val = Integer.parseInt(input);
        if (val % 2 == 0)
            numeven++;

    } catch (NumberFormatException e) {
        //enter any input besides an integer and it will break the loop
        break;
    }
}

System.out.println("Total even numbers: " + numeven);

或者这也是一样的。除了它不会消耗最后一个值。

int numeven=0;
Scanner scan = new Scanner(System.in);

while (scan.hasNextInt()) {
    int val = scan.nextInt();
    if (val % 2 == 0)
        numeven++;
}

System.out.println("Total even numbers: " + numeven);

答案 2 :(得分:-1)

只需将while循环的条件设为

即可
while( scan.hasNextInt() )

然后只有有数字才会循环。在循环内你可以

input = scan.nextInt()