可能重复:
pre Decrement vs. post Decrement
What is the difference between ++i and i++?
我刚刚意识到这一点
int i=0;
System.out.println(i++);
打印 0 而不是 1 。 我以为 i 增加了然后打印出来。似乎恰恰相反。
为什么?
答案 0 :(得分:12)
这些是pre- and post-increment operators。这种行为完全正确。
i++
返回原始值。++i
会返回新值。答案 1 :(得分:2)
执行i++
时,在下一条指令之前不会发生增量。它被称为后增量。
答案 2 :(得分:2)
System.out.println(i++);
首先打印i的值然后递增i。它的订单增量。
答案 3 :(得分:2)
++i will print 1
i++ will print 0
答案 4 :(得分:2)
i++
表示返回i,然后递增。因此,在我之后的++。
++i
表示递增i,然后返回。因此,在我面前的++
答案 5 :(得分:1)
i++
=>评估然后增加; ++i
=>增加然后评估。考虑for
循环 - i
在每次迭代后递增。
答案 6 :(得分:1)
变量后的++
定义了后增量操作。这意味着在完成该行上的所有其他操作后,i
会增加。如果使用++i
,变量将在打印前递增
答案 7 :(得分:1)
你可以在这里找到:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html有两个递增运算符:i ++和++ i。 ++我做你认为我会做的事情。 i ++在用于其他目的后递增该值(查看链接以获取更多详细信息)
答案 8 :(得分:1)
因为赋予System.out.println(i++);
的值首先被赋值为0,所以它会递增。
如果您尝试System.out.println(++i);
,则会向您显示1。