这是我在网站上找到的一个示例。结果真的和我想象的不一样。但没有进一步解释。
int num = 0;
for (int i = 0; i < 3; ++i)
{
num += num++;
}
System.out.println(num);
最后,结果将打印0
。我对 num += num++ 操作感到非常困惑。有人能解释一下吗?
最佳答案
num++
递增 num after
指令(它是一个后置增量运算符)。
所以num += num++;
分配0
至num
(数字 = 0 + 0 + 0)。
指令后num += num++;
num
的后增量(即 num++
)与 num
没有任何效果被分配给另一个值(即 num += 0
,结果为 0
)。
所以num
值为0
。
每次迭代依此类推。
替换num += num++
通过++num
这是预自增运算符,您将得到结果:3
(当您通过迭代增加 1 时)。
关于java - 为什么循环最后打印0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878925/