18 回答
TA贡献41条经验 获得超38个赞
这个就要看你对++a的理解是否透彻
++a;是指先让a自加1,然后将整体作为值赋给其他内容做操作。
所以此时 int b = ++a; 实际上是执行了 a = a + 1; b= a;
TA贡献1条经验 获得超1个赞
自加运算符++的优先级高于赋值运算符=,因此先运算 int a=12; ++a ,int a==12+1==13,接下来,把a==13赋给b,结果输出 13,13
TA贡献237条经验 获得超0个赞
TA贡献237条经验 获得超0个赞
TA贡献237条经验 获得超0个赞
TA贡献6条经验 获得超2个赞
++在前面是自身先加一然后再赋值; ++在后面是先赋值后自身加一
b=++a, 由于++在前面,a自身先加1,也就是a=13,然后再把值赋给b,所以都是13
b=a++ ==> b=12 a=13
TA贡献1条经验 获得超0个赞
++a和a++对于之后的System.out.println("a:"+a);效果一样,都相当于a=a+1;
区别是
int b = ++a;相当于int b = a; a = a+1;
int b = a++;相当于a = a + 1; b = a;
但是在System.out.println("a:"+a);的时候a都已经+了1 所以a也等于13.
TA贡献2条经验 获得超0个赞
a++和++a简单理解就是a和++哪个靠近=号,哪个先运算,int b=++a,就是先执行++,就是说a先加加,在赋值给b,
得到a得13,在把13赋值给b.
如果是int b=a++;就是先把a赋值给b,然后a在++就是说b=12,a=13
TA贡献5条经验 获得超1个赞
这个是我自己的理解,我也是刚学的Java,你这个原因可能是因为++a是自增的,意思就是它自加后先把13赋值给了a所以把a=12给覆盖了,你可试试a++这个是先自增后赋值,意思就是它是运行完了你这个编码后才是a=13的 你可编一个循环语句测试测试下。
添加回答
举报