我試圖計算此爲i=i*++i
因此i=56*57
這給了我3192,但我的計劃說,該值爲2162:運算符優先級
class Demo {
public static void main(String args[]) {
short i=056;
i*=++i;
System.out.println(i);
}
}
我試圖計算此爲i=i*++i
因此i=56*57
這給了我3192,但我的計劃說,該值爲2162:運算符優先級
class Demo {
public static void main(String args[]) {
short i=056;
i*=++i;
System.out.println(i);
}
}
的問題是乘法之前 - 它在這裏:
short i=056;
這是一個八進制文字,十進制值爲46.所以,你實際上得到46 * 47的結果,這確實是2162.
我會強烈建議你不要使用像i *= ++i
雖然代碼。所有相關人員使用i *= i + 1
更簡單。我還建議你不要使用八進制文字。
我也強烈建議不要使用八進制文字! – Gabe
@加貝:大約30秒前就做過了:) –
你對什麼感興趣?'i = i * ++ i'或'i * = ++ i'? –
從'056'中刪除前導'0',然後你會注意到一些事情,並可能得到答案。 –