这样为什么不可以呢?~
?~~~~
?~~~~
2015-06-19
你的代码和执行结果是对应的,没有什么问题。
(1)第一次循环 i = 1;i % 3 != 0 && i <= 100 条件成立。
所以先输出 sum = 0;
然后再 执行 i++,sum = sum + i 操作;(i++导致 i 变为2,sum = sum + i 导致 sum 变为 2)
(2)第二次循环 i = 2;i % 3 != 0 && i <= 100 条件成立。
所以先输出sum = 2;
(3)第三次循环 i = 3;i % 3 != 0 && i <= 100 条件不成立,退出循环。
这里的问题是:你编写的代码逻辑有错误。你应该把 i % 3 != 0 条件放到循环体内去判断,同时把sum叠加操作放到循环体内执行。
如:
int sum = 0;
for(int i = 1; i <= 100; i++){
if(i % 3 != 0){
sum = sum + i;
System.out.println("i:" + i);
System.out.println("sum:" + sum);
}
}
举报