2011-02-17 49 views
0
語句

可能重複:
&& (AND) and || (OR) in Java IF statements快速的問題,如果有多個條件

這是我應該大概以前知道的答案,多年的問題,但如果我如果寫一個在Java中有類似if(x!= null & & y == null & & x.equals(z))的語句是否安全?我假設if語句的條件從左到右被解釋,所以檢查x!= null是否開始將確保在條件的x.equals(z)部分上不拋出空指針異常(至少x)。這是否準確?

+0

這樣的事情最好通過[諮詢JLS]進行檢查(http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.23)。它非常嚴格,精確並且免費提供,不像C++。 – 2011-02-17 18:16:03

回答

0

簡短的回答:你做得很好。

漫長的回答:你做得很好,因爲Java使用了一種稱爲短路布爾評估的方法。瞭解它here

0

簡而言之:是的,這是正確的。 :)

1

像@mellamokb說這是短路。

我只補充一點,如果你有比較討論這樣的:

if (str != null && str.equals("FINAL STRING") {...} 

更好地利用:

​​

第一種方式是經常choosen但條件應儘可能簡單:)