问答详情
源自:4-9 Java循环语句之 for

为什么i=0 和i=1 的运行结果一样。第一遍不执行i++么?

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);

}

}


提问者:砂锅炖大鹅 2019-05-02 18:44

个回答

  • AlexanderW
    2019-05-03 14:28:47

    你把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++只会在循环体结束后才会执行

  • 遇渔鱼欲愚
    2019-05-02 19:09:44

    for循环的执行顺序为:语句一,语句二,循环操作,语句三,语句二,循环操作,语句三........

  • 我爱关关
    2019-05-02 19:06:17

    `0%3 != 0`为true,sum+=0;

    `1%3 != 0`为false,sum不变;

    所以,i的值为0或1是一样的。

    另外,第一遍不执行`i++`