[英]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.