右手很强壮
2016-08-07 18:21
public class HelloWorld
{
public static void main(String[] args)
{
int sum = 0; // 保存不能被3整除的数之和
// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
for (int i = 1;i<=100;)
{
// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
if (i % 3 != 0)//And here
{
sum = sum + i; // 累加求和
i++;//Here
}
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}
}
1、i的自增不应该是在求和之后吗?i++放在括号里边,在求和之前数值就发生改变了啊。 2、在if判断条件后面,当i等于3的倍数的时候,i%3!=0就为假了,程序会怎么执行?
首先第一个问题是,for循环里面的i++是先引用再增加的,你调试代码就可以发现,for循环第一个i的值是你最开始赋值的;后面才会在每次循环开始的时候增加。
第二个问题是,当i等于3的倍数的时候,条件为假了,就不会进入if后面的语句,程序当然会继续往下执行下去,直到走完这次循环。
你也是厉害。都不想说了。
首先 你的i++自增应该放在for循环里边 你会明白为什么的 如果你这样写。
第二 当if(i%3!=0)为假时,条件语句不执行,直接跳过{},执行后边的语句。
1、第二个i++去掉
2、然后条件家的时候是不执行里面内容
3、这都是基础啊
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题