这是一个常见的问题,很具有迷惑性,当然也比较基础。

先看下面的一个例子:

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、ij的值都增加了1;说明在执行完成i++或者++j后,i和j都增加了1。

分析为什么?

一句话简言之:

1、i++是先使用i,再赋值计算

2、++j是先赋值计算,再使用