public class HelloWorld {
public static void main(String[] args) {
int sum = 0; // 保存不能被3整除的数之和
// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
for (int i = 1; i<=100 ; i++ ) {
// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
if (i % 3 != 0) {
sum = sum + i; // 累加求和
}
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}
}
你把i换成0,那么0%3==0判断成功,会进行求和sum = sum + 0,所以sum还是等于0,因此定义i=1和定义i=0出来的sum的结果一样,但是你可以在循环体外面定义一个 int times = 0,并且在循环体中加入times++,在输出times的值,就会发现i=0 与 i=1是不一样的,i = 0的times比i = 1大。。。至于你说的第一次会不会i++,答案肯定是不会的,i++只会在循环体结束后才会执行
for循环的执行顺序为:语句一,语句二,循环操作,语句三,语句二,循环操作,语句三........
`0%3 != 0`为true,sum+=0;
`1%3 != 0`为false,sum不变;
所以,i的值为0或1是一样的。
另外,第一遍不执行`i++`