-1
這個代碼不應該產生除零異常嗎?爲什麼這個if語句失敗?
public class Testing {
public static void main(String[] args) {
if(6 > 5 || 5/0 == 0)
System.out.println("true");
}
}
按照precedence rules將不5/0
得到6 > 5
之前執行的,所以我的印象是,這個代碼將失敗的原因被零異常的鴻溝下。
我知道,Java短路如果語句。所以,如果第一個是真的,那麼它會評估爲真,甚至沒有檢查第二個。
但是,這些優先規則使它看起來像5/0
將首先執行?
另請參見http://stackoverflow.com/questions/6800590/what-are-the-rules-for-evaluation-order-in-java – Tunaki
「根據優先規則,5/0不會被執行在6> 5「之前,哪個優先規則正好讓你這麼想? – Pshemo
如果語句從左到右評估 –