java扫描程序和while循环添加
我昨天刚发了帖子,但我回来问了另一个问题,我知道这个问题的答案,但我被他们是如何得到它的
import java.util.*;
public class test {
public static void main(String[] args) {
String s = "12 13 14 15 18 16 17 20 2";
Scanner c = new Scanner(s);
int sum = 0;
while(c.nextInt()% 2 == 0)
sum += c.nextInt();
System.out.println(sum);
}
}
输出是44
,但我自己一直得到46
。我可能做错了,因为我对c.nextInt()
的工作原理不太熟悉
我想是这样的:
12 % 2 = 0, so add 13
14 % 2 = 0, so add 15
18 % 2 = 0, so add 16
17 % 2 =/= 0, so skip
20 % 2 = 0, so add 2
for a total of = 46
我错过什么了吗
编辑:解决了,忘记了循环不仅仅是“跳过”。我很笨
# 1 楼答案
以下是每次循环中的细分:
印刷品44
# 2 楼答案
是的,这里的答案是44。在这里,您将重复while循环,直到(编号%2==0)变为FALSE。 就你而言:
您正在添加13+15+16,下一个检查while条件的数字是17
此处(17%2==0)为FALSE,因此条件失败,不进入循环
总数为44(13+15+16)
我希望这会有帮助
# 3 楼答案
Java while循环用于执行语句,直到条件为true为止。如果条件为false,则会中断此while循环。所以
17%2!=0,此while循环将被中断。所以sum=44