我遇到了這個問題in this website,並在Eclipse中嘗試過,但無法理解它們的評估方式。a + = a ++ * a ++ * a ++ in Java。它如何得到評估?
int x = 3, y = 7, z = 4;
x += x++ * x++ * x++; // gives x = 63
System.out.println(x);
y = y * y++;
System.out.println(y); // gives y = 49
z = z++ + z;
System.out.println(z); // gives z = 9
根據網站的註釋中,x + = X ++ * X ++ * X ++解析爲X = X +((X + 2)*(X + 1)* X),其結果是正確的。我想我錯過了這個運算符的優先級。
'X + = 3 * 4 * 5; = 3 + 60 = 63'; 'y = 7 * 7 = 49','z = 4 + 5 = 9' – NullUserException
爲什麼這會被投票結束爲一個C++問題的重複? – NullUserException
(我同意NullUserException - C/C++對於處理這個相同的結構有不同的*規則,但是它恰好在Java下很好定義,如果不是醜陋的話。) – 2012-11-13 22:08:27