18 回答

TA貢獻41條經(jīng)驗 獲得超38個贊
這個就要看你對++a的理解是否透徹
++a;是指先讓a自加1,然后將整體作為值賦給其他內(nèi)容做操作。
所以此時 int b = ++a; ?實際上是執(zhí)行了 ? a = a + 1; b= a;?

TA貢獻1條經(jīng)驗 獲得超1個贊
自加運算符++的優(yōu)先級高于賦值運算符=,因此先運算 int a=12; ++a ,int a==12+1==13,接下來,把a==13賦給b,結(jié)果輸出 13,13

TA貢獻237條經(jīng)驗 獲得超0個贊

TA貢獻237條經(jīng)驗 獲得超0個贊

TA貢獻237條經(jīng)驗 獲得超0個贊

TA貢獻6條經(jīng)驗 獲得超2個贊
++在前面是自身先加一然后再賦值; ++在后面是先賦值后自身加一
b=++a, 由于++在前面,a自身先加1,也就是a=13,然后再把值賦給b,所以都是13
b=a++ ? ==> b=12 ?a=13

TA貢獻1條經(jīng)驗 獲得超0個贊
++a和a++對于之后的System.out.println("a:"+a);效果一樣,都相當(dāng)于a=a+1;
區(qū)別是
int b = ++a;相當(dāng)于int b = a; a = a+1;
int b = a++;相當(dāng)于a = a + 1; b = a;
但是在System.out.println("a:"+a);的時候a都已經(jīng)+了1 所以a也等于13.

TA貢獻2條經(jīng)驗 獲得超0個贊
a++和++a簡單理解就是a和++哪個靠近=號,哪個先運算,int b=++a,就是先執(zhí)行++,就是說a先加加,在賦值給b,
得到a得13,在把13賦值給b.
如果是int b=a++;就是先把a賦值給b,然后a在++就是說b=12,a=13

TA貢獻5條經(jīng)驗 獲得超1個贊
這個是我自己的理解,我也是剛學(xué)的Java,你這個原因可能是因為++a是自增的,意思就是它自加后先把13賦值給了a所以把a=12給覆蓋了,你可試試a++這個是先自增后賦值,意思就是它是運行完了你這個編碼后才是a=13的 ?你可編一個循環(huán)語句測試測試下。
添加回答
舉報