i++:是先把i拿出来使用,然后再+1;
++i :是先把i+1,然后再拿出来使用;
故 a = i++是 先把原来的i赋值给a,i再自加1
a = ++i 是 先把i自加1操作,然后将结果赋值给a
需要琢磨的一个东西:
a = a ++;// a还是没变
a = ++ a; // a加了1
下面的程序用于展示
public static void main(String[] args) {
int i = 1;
System.out.println(i++ + i++);// 3
System.out.println("i=" + i);// i=3
System.out.println(i++ + ++i);// 8
System.out.println("i=" + i);// i=5
System.out.println(i++ + i++ + i++);// 18
System.out.println("i=" + i);// i=8
}
分析:
1、先取i的值为1,然后i自加1为2,取i的值为2,相加得到3,i自加1为3
2、先取i的值为3,然后i自加1为4,然后i自加1为5,相加输出8
3、取i的数值为5,i自加1为6,取i的数值为6,i自加1为7,取i的数值为7,i自加1为8,整体5+6+7=18