初学者提问 为什么i++输出是0 1 3 5 7 9 ++i输出2468

img


为什么i++输出是0 1 3 5 7 9
++i输出却是2 4 6 8
(上课讲的 听不太懂 求解答)
我所理解如果输出的是i就是09 但是输出i++就应该09再+1 因此是输出单数
下面++i输出双数我就不太懂了

++i先自增,后输出结果
等价于:
1、i=i+1;
2、i=i;

i++是先输出结果,再自增。
等价于:
1、i=i;
2、i=i+1;

输出的时候,输出的就是第一个表达式的结果。

printf(i++)的话,先执行printf(i),再执行i=i+1,所以会先打印循环的i值,然后i加1,循环本身i++,所以i每次+2
printf(++i)的话,先执行i=i+1,再执行printf(i),所以输出的是循环i值加1。由于循环本身i++,所以每次i也是+2

如有帮助,请采纳哦

public class ElevenTest {
    public static void main(String[] args) {
        /**
         * i++ 先用后加 ++i先加后用
         */
        int i = 0;
        // 先用后加 打印 0,然后自增 i = 1;
        System.out.println(i++);
        // 先加后用 i自增 i=2 打印2
        System.out.println(++i);
    }
}

一个先输出,一个先加