public class MyCode5{
public static void main(String[] args){
int i = 1;
int j = 1;
i = i++;
j = ++j;
System.out.println("i = "+i);
System.out.println("j = "+j);
}
}
运行结果:
i = 1
j = 2
由上可知,”i++“与”++i“不同,程序运行时总是计算完等式右边的表达式后再赋值,++也是如此。
i++ 等价于 (int temp = i; i = i+1; temp)
++i 等价于 (i = i+1; i)
因此,
i = i++
等价于
int temp = i;
i = i+1;
i = temp; //等式赋值
j = ++j;
等价于
j = j+1; //前置++运算
j = j; //等式赋值