我昨天刚刚发布,但我又回来了另一个问题,我知道这个问题的答案,但我坚持他们是如何得到的。
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
我错过了什么吗?
编辑:解决了,忘了循环不只是“跳过”。我笨了
答案 0 :(得分:0)
是的,这里的答案是44.这里你重复while循环,直到(number%2 == 0)变为FALSE。 在你的情况下:
你正在添加13 + 15 + 16和下一个数字来检查while条件是17
这里(17%2 == 0)为FALSE因此条件失败并且没有进入循环。
总共有44(13 + 15 + 16)
我希望这会有所帮助!
答案 1 :(得分:0)
以下是每次循环的细分:
打印44
答案 2 :(得分:0)
Java while循环用于执行语句,直到条件成立为止。如果条件为false,则此while循环将会中断。所以
17%2!= 0,这个while循环将会中断。所以总和= 44。