2010-08-06 129 views

回答

7

這是一個按位「或」加上賦值,所以你在你的假設中是非常正確的。

+0

這是正確的+1 – 2010-08-06 04:08:45

3

更正確,X | = Y實際計算爲X = X | (Y)。

這是一個有趣的例子,爲什麼這很重要。

int c = 2; 
c %= c++ * ++c; 

這裏的有趣的結果是,它會被寫成

c = c % (c++ * ++c); 

Java規範告訴我們,JVM會先看到初始c和存儲,任何在它之前將有沒有影響它,因此C++ & ++ c實際上不會影響計算的結果。它總是c = 2%,這等於2 :)

+0

+1好的角落案例! – fortran 2010-08-06 09:46:50