柒柒七
2017-03-06 12:57
for (int i = 1; i<=100;i++) {
if (i % 3 != 0) {
sum = sum + i; // 累加求和
}}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
这样写答案是正确的,但是如果将i区域放到for中(下面那样),为什么答案就变成3了呢?
int sum = 0;
for (int i = 1; i<=100&&i%3!=0;i++) {
sum = sum + i; // 累加求和
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
当 i = 3;
即不满足执行条件,i % 3!=0这个条件时。
代码结束,跳出循环,所以sum的值为1+2=3
你没有理清楚for循环的执行过程吧,拿你第二个for循环来说,中间的i<=100&&i%3!=0是循环条件,一旦不满足就会终止循环,这个循环与上面那个的区别也就是多了一个i%3!=0,很明显的,当i递增到3的时候,就不能满足循环条件了,所以sum只会做两次自增,分别+1, +2。
i<=100&&i%3!=0 i=3的时候 i%3=0条件不满足,自动退出循环。
不用解答啦~找到毛病了。
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题