繁体   English   中英

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

[英]Why does my program ignore zero when counting even numbers?

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

这是我正在使用的代码:

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为偶数)。

如果您希望循环从零开始工作,并且也将其视为退出标记,请从while切换为do / while

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

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

您不希望在用户输入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);

只要使您的while循环的条件为

while( scan.hasNextInt() )

然后,只有存在数字时,它才会循环播放。 在循环内您可以

input = scan.nextInt()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM