&&
的優先級應該有更高的優先級比||
:的Java布爾
int a = 10;
System.out.println(a==10 || --a==9 && a==8);
System.out.println(a);
此打印正確的,10它似乎只檢查了第一部分,如果其真正的第二個根本不會執行。
如果我做a==9
那麼第二部分似乎評估和打印9.有人可以解釋爲什麼會發生這種情況嗎?是不是&&
應該首先評估?
編輯:我明白了。 a==10 || --a==9 && a==8
轉換成(a==10) || (a==9 && a==8)
因此,如果第一個評估爲真,它會短路。謝謝你的幫助。
沒有更高的優先級,它只是從左轉到右.. – gtgaxiola 2014-08-28 13:09:13
@gtgaxiola小心,當你說沒有優先級。如果沒有優先權。如果沒有優先級,表達式將評估爲true。 – Cruncher 2014-08-28 13:11:53
@Cruncher很好抓.. – gtgaxiola 2014-08-28 13:12:54