此程式碼募集最優秀的答案

孤獨鍵客發表於2019-04-16
閱讀本文大概需要 1 分鐘。

這次的 [ 一分鐘系列 ] 灰常的簡單,只有短短几十來個字,考驗你 Java 基礎的時候到了,燒動吧,大腦!話不多說,本次程式碼只為募集到最優秀的答案,程式碼如下:


int j = 0;

for(int i=0; i<100; i++){

j = j++;

}

System.out.print(j);


你覺得最後會輸出多少呢,為什麼?

請選擇了答案的童鞋們,在評論處寫下你選擇此答案的理由。

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

答案不在下面

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

答案真的不在下面 

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

- _ -

點選下方空白區域檢視答案

「正確答案是 0 ,想不到吧」

這是因為 Java 中 [ 前++ ] 和 [ 後++ ] 的區別;

[ j = j++ ] 這個屬於 [ 後++ ],[ 後++ ] 的運算原理是先將值 +1 ,然後將 +1 前的值賦值給 = 號前面的變數 ;

[ j = j++] 其實等於做了如下兩個操作:

a) j 自己增加1變成1;

b) 然後將自增前的 0 又賦值給 j,所以 [ j = j++ ] 始終為 0 。

- _ -

- _ -

- _ -

- _ -

- _ -



·END·

程式設計師的成長之路

路雖遠,行則必至

本文原發於 同名微信公眾號「程式設計師的成長之路」,回覆「1024」你懂得,給個讚唄。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902700/viewspace-2641485/,如需轉載,請註明出處,否則將追究法律責任。

相關文章