i ++返回i而不是i ++

时间:2012-09-09 18:16:50

标签: java coding-style

  

可能重复:
  pre Decrement vs. post Decrement
  What is the difference between ++i and i++?

我刚刚意识到这一点

int i=0;
System.out.println(i++);

打印 0 而不是 1 。 我以为 i 增加了然后打印出来。似乎恰恰相反。

为什么?

9 个答案:

答案 0 :(得分:12)

这些是pre- and post-increment operators。这种行为完全正确。

  • i++返回原始值。
  • ++i会返回新值。

答案 1 :(得分:2)

执行i++时,在下一条指令之前不会发生增量。它被称为后增量。

答案 2 :(得分:2)

System.out.println(i++);

首先打印i的值然后递增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。