java - 为什么循环最后打印0?

标签 java for-loop increment

这是我在网站上找到的一个示例。结果真的和我想象的不一样。但没有进一步解释。

int num = 0;

for (int i = 0; i < 3; ++i)
{  
    num += num++;
}

System.out.println(num);

最后,结果将打印0。我对 num += num++ 操作感到非常困惑。有人能解释一下吗?

最佳答案

num++递增 num after指令(它是一个后置增量运算符)。
所以num += num++;分配0num (数字 = 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/

相关文章:

java - Apache CommonsExec 异步调用阻止同步调用

java - Android:函数在 Thread 中不起作用,但在其他情况下起作用(尝试添加 ProgressDialog)

matlab - 在 Matlab 中优化循环

java - 如何使用第3方jar和我自己的jar在linux中编译和运行java

java - 从 XML 解析 map

javascript - For 循环与 addeventlistener 结合不起作用(相同的输出)

linux - 在循环 bash 中等待

mysql - 如何为mysql中的主自动增量整数赋予有效的默认值?

java - AtomicInteger 在 JUnit 测试中不会增加

java - 按钮单击 JSF 2.2 时 bean 中的实例变量增量