2 回答

TA貢獻(xiàn)10條經(jīng)驗 獲得超4個贊
這個是因為你第一次++i的時候,i的值等于2了,所以當(dāng)再進(jìn)行++i操作的時候,自然是在i=2的基礎(chǔ)上+1,所以結(jié)果是5

TA貢獻(xiàn)3593條經(jīng)驗 獲得超0個贊

TA貢獻(xiàn)112條經(jīng)驗 獲得超42個贊
修正一下剛剛的回答:答案是j=5!
分析過程不變
int i = 1;
int j = ++i + ++i;?
System.out.println(j);
此時i=3,j=5;
如果你換一種寫法
int i = 1;
int j = i++ + i++
System.out.println(j);
那么此時i=3,j=3
也就是說++在變量前面,先計讓變量+1再進(jìn)行與其他的表達(dá)式進(jìn)行運算,如果++在后面,那么就是先進(jìn)行運算后將變量自身+1
(++i)/(i++)都是一個整體,按照前面的分析,如果++/--在前,那么先進(jìn)行自身的自增或自減,在跟后面的表達(dá)式進(jìn)行運算。若果在后面則先進(jìn)行運算在對自身進(jìn)行自增或自減。
你這里進(jìn)行了兩次自增,所以特別注意這一規(guī)則。

TA貢獻(xiàn)112條經(jīng)驗 獲得超42個贊
首先要肯定一下的是:答案是4!
int i = 1;
int j = ++i + ++i;?
System.out.println(j);
此時i=3,j=4;
如果你換一種寫法
int i = 1;
int j = i++ + i++
System.out.println(j);
那么此時i=3,j=2
也就是說++在變量前面,先計讓變量+1再進(jìn)行與其他的表達(dá)式進(jìn)行運算,如果++在后面,那么就是先進(jìn)行運算后將變量自身+1

TA貢獻(xiàn)2條經(jīng)驗 獲得超0個贊
答案是5,
因為:“+“在變量前面意思是:在運算之前就自動加1,在第一個自增后為2,然后去加第二個自增,這時候第二個自增會本身已經(jīng)接收到了第一個自增后的結(jié)果(因為你的兩個變量是一個,所以每次會用最新的數(shù)據(jù)),所以第二個自增后會變3,如果還有第3個,那它在自增前會調(diào)用第2個,自增后就會為4。
如果在變量后面例如:int i=1; int j=i++ + i++;則意思是在運算后在自增,所以答案會是2.
自減的寫法一樣,意思也一樣,不同的是自減每次是減1.
添加回答
舉報