簡體   English   中英

為什么 jshell 顯示這個數字?

[英]Why does jshell show this number?

我正在學習 java,這個邏輯讓我感到困惑。

這里不是i=20(+1)+20(+1)嗎?

為什么是41而不是42

jshell> int i = 20
i ==> 20
jshell> i=i++ + i++
i ==> 41

請參閱在Ideone.com運行的代碼。

實際上,表達式i=i++ + i++; 等於i=i++ + i; . 為什么? 后一個i++結果值從不使用,也不會傳播。 后綴加i++的結果只要在表達式后面加上值i並且結果生效。 但是,在后面的i++之后,不使用i的結果值。

如果要實現42的結果,則需要在將整個結果分配回i變量后執行后綴賦值( i++ ):

int i = 20;
i = i++ + i;
i++;
System.out.println(i);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM