问Java中单个表达式下多项++,--的求值规则?int i=0; System.out.println(++i+ ++i);的值

2025-04-18 05:09:40
推荐回答(4个)
回答1:

++i的表示在运算之前先对i的值加1然后运算
i++表示先用i当前的值进行运算 然后对i的值加1
所以
int i=0;
++i+ ++i+i++
相当于:
(((++i)+(++i))+(i++));
+是从左到右执行的即
1+2+2=5
然后最有一个i++其实是2 但是运算结束之后i的值会加i=3
我不知道你 想达到怎样的效果,还是只想测试下前++,后++是怎样执行的,一般话不会这样去些最好加括号。(((++i)+(++i))+(i++));这样也更让人一目了然。

回答2:

++i的表示在运算之前先对i的值加1然后运算
i++表示先用i当前的值进行运算 然后对i的值加1
所以
int i=0;
++i+ ++i+i++
相当于:
1+2+2=5
然后最有一个i++其实是2 但是运算结束之后i的值会加1=3
所以你在你的打印语句下打印i的值会发现是3。
希望可以帮到你

回答3:

sum++是一个表达式
其结果是sum的值,然后sum的值进行+1操作
给你解释一下第一次循环
首先sum++的是还是0 但是此时 sum的值是1
然后你又将sum的值重新赋值成 sum++的值0
所以sum++之后sum的值是1,又经过赋值之后,又回归成0了
所以sum的值是0
再次循环同样

回答4:

++i的表示在运算之前先对i的值加1然后运算
i++表示先用i当前的值进行运算 然后对i的值加1
所以
int i=0;
(++i)+ (++i) + i++
相当于:
1+2+2=5