a++是先执行表达式后再自增,执行表达式时使用的是a的原值。
++a是先自增后再执行表达式,执行表达式时使用的是自增后的a。
注意:不管是先自增还是后自增,最终a都自增了。
int a1=1;
int b1=a1++;
System.out.println("a后自增值为"+a1+'\t'+"b=a++值为"+b1);
int a2=1;
int b2=++a2;
System.out.println("a先自增值为"+a1+'\t'+"b=++a值为"+b2);
具体了解a++过程
** int a=1;
int b=a++;
// 执行步骤 :
// * 1.将a赋值给a++==>a++=a=1;
// * 2.执行a=a+1==>a=2;
// * 3.将a++赋值给b==>b=a++=1;
// * 所以执行结果b=1,a=2;**
++a过程
int a=1;
int c=++a;
// 执行步骤 :
// * 1.执行a=a+1==>a=2;
// * 2.将a赋值给++a==>++a=a=2;
// * 3.将++a赋值给c==>c=++a=2;
// * 4.所以执行结果c=2,a=2;
拓展一下,int a=1,int b =(a++)+ a;求b的值。首先,对于赋值运算,我们要先将右边式子的值计算出来,最后再将值赋给左边变量b。1. 令c=a++,先计算括号里的值。所以c=1,此时a完成后自增,a=2; 2.右边则可以表示为c+a=3,将3赋给变量b,所以b=3。
int a=1;
int b =(a++)+ a;
System.out.println(b);
结果:
如果把a++改为++a,那么结果就应该为4
int a=1;
int b =(++a)+ a;
System.out.println(b);
结果: