我在理解Java中短路運算符的優先級方面遇到困難。根據短路行爲,表達式「true || true」的右邊部分在這裏應該不重要,因爲一旦「& &」條件的第一部分被評估爲「假」,表達式的其餘部分應該具有未被評估。爲什麼下面的表達式返回true?
但是,當執行下面的一段代碼時,我看到聲明爲「true」的結果。有人可以向我解釋這一點嗎?
public class ExpressionTest{
public static void main(String[] args) {
boolean result1 = false && true || true;
System.out.println(result1);
}
}
感謝您的答覆!我現在明白爲什麼表達評估爲「真實」。但是,爲什麼編譯器選擇評估策略爲(false && true)||真正。相反,在「&&」運算符之前看到「false」後,它可能會忽略聲明的其餘部分? – sunsin1985
@ sunsin1985。 Java從左向右評估表達式。就是這樣。 –
謝謝!這解釋給我。 – sunsin1985