我认为我的代码是正确的但是当我运行它时,底部的输出语句不会生成。我要求键盘输入任意数字,然后输入-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);
}
答案 0 :(得分:1)
你再也没有得到输入,所以循环无限运行。你需要再次获得价值。
while (num != -1)
{
...
num = sc.nextInt();
}
答案 1 :(得分:0)
num被设置。
那么,num在while循环中何时发生变化?它没有。这就是为什么你的代码不会退出循环。
我建议移动
num = sc.nextInt();
在循环中。