[英]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.