Java中i=i++问题
猜猜以下代码的输出:
1 | public class Test { |
输出为:
1 | result = 0 |
刚开始还以为是答案错误,在idea中运行了一下发现,还真是这样。
按照一般的思路,i = i ++ 应该分为两步:
- i = i
- i ++
结果应该为:
1 | result = 100 |
上网查了一下:
i = i ++ 的步骤其实分为三步:
- 把变量i的值取出来,放在一个临时变量里(记作temp);
- 把变量i的值进行自加操作;
- 把临时变量temp的值作为自增运算前i的值使用;
经过以上三步操作以后,虽然变量i在第2步操作中进行了自增运算,但第3步操作以后又把原来的值赋给了它,故最后输出结果为0。
这个说法蛮靠谱的,我又使用c语言测试了一下,输出也为相同的结果。
参考博客:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 狼族少年、血狼!

