簡體   English   中英

Java前綴運算符的行為

[英]Java prefix operator behavior

我想知道為什么下面的代碼返回0。我認為num2將在應用到*=之前遞增,第二行將執行num2 = 1*1

int num2 = 0;
num2 *= ++num2;
System.out.println(num2);

JLS

形式為E1 op= E2的復合賦值表達式等效於E1 = (T) ((E1) op (E2)) ,其中TE1的類型,只是E1僅被評估一次。

因此,您的代碼等效於:

num2 = (int) (num2 * ++num2);

乘法的左側操作數為零,因此結果為零。

暫無
暫無

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

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