代码如下:
int i = 50;
++i; // i++
System.out.println("自增后:" + i);
为什么运行 i++ ++i 结果都是51 i++结果不应该是50吗?
代码如下:
int i = 50;
++i; // i++
System.out.println("自增后:" + i);
为什么运行 i++ ++i 结果都是51 i++结果不应该是50吗?
你将 ++i 和 i++ 语句单独写出来作为一条独立语句的时候,这两者是没有区别的。
看下面这种情况:
int i = 50,j;
j=(i++)*2; // j=(++i)*2
System.out.println(i);
System.out.println(j);
上面代码中,i++和++i的区别就会体现出来:
j=(i++)*2 时,参与乘2操作的是50,而当j=(i++)*2这条语句执行完之后,才会执行 i++ ,所以对于j=(i++)*2 最后的结果是 j=100 i=51.
j=(++i)*2 时,参与乘2操作的是51,先将 i 自增 1,再参与乘2 运算,所以对于j=(++i)*2 最后的结果是 j=102 i=51.