class Hello {
public static void main(String args[]) {
int i = 10;
i *= i++ + i;
System.out.println(i);
}
}
根據運算符優先級,後綴運算符比乘法運算符的優先級更高。括號內的操作數具有更高的優先級。在這個Java程序中,我的邏輯運算符優先級有什麼問題?
第一評價它們:我*(I ++ + I) 所以,現在,它是10 + 11的括號內:我*(21)
i的當前值是11
其次,由於下一個優先級,評估乘法運算符,它不應該是11 * 21 = 231?
雖然,我知道答案是210,爲什麼我上面解釋的邏輯錯誤?
'我現在的價值是11' - 是什麼讓你這麼說? – Mat
@Mat - OP表示,因爲在增加'i'之後它的值確實是11,並且錯誤的假設是這發生在任何其他的'i'操作數被評估之前 –