这是一个常见的问题,很具有迷惑性,当然也比较基础。
先看下面的一个例子:
public class HelloWorld {
public static void main(String []args) {
int i=0,j=0;
int a,b;
a=i++;
b=++j;
System.out.println("a="+a+"; b="+b);
System.out.println("i="+i+"; j="+j);
}
}
打印的结果如下:a=0; b=1
i=1; j=1
从这里打印的结果可以看出:
1、a的值还是i初始化的值,未发生变化;这就说明i++ 的值是i的值。
2、b的值发生了变化;说明++j的值是j+1的值。
3、i和j的值都增加了1;说明在执行完成i++或者++j后,i和j都增加了1。
分析为什么?
一句话简言之:
1、i++是先使用i,再赋值计算
2、++j是先赋值计算,再使用