2014-05-09 66 views
0

在Java(Eclipse中),其爲if (true || false)這樣的語句時,它最終會真正的,但問題是將編譯器評估第二份聲明,如果第一個是真的嗎? 這對我來說很重要,因爲如果變量爲空或者它具有特定值,我需要執行一個操作。 我的發言看起來像if (array == null || array[i] < array[j])。 你可以看到我的問題的原因,因爲如果數組設置爲空,那麼第二個語句將產生一個錯誤。 所以,從array == null足矣真或將編譯器評估array[i] < array[j])也?是否邏輯或忽略第二條語句,如果第一個是真實的

回答

7

沒有也不會。

  • 隨着布爾運算符||,如果第一術語是true第二內不會 進行評價。
  • 隨着位運算符|兩個方面進行評估

同樣...

  • 布爾操作&&,如果第一項是false秒內不會進行評估
  • 隨着位運算符&,兩項均被評估

個Java運營商文檔here

+0

謝謝! 我可以測試它在我的表達,但是在到達那裏我可以調試它很遠,這將是一種恥辱,做一切工作,並最終將其固定於一點。 –

+0

@SharonJDDorot不客氣。 – Mena

+0

@SharonJDDorot - 看看Groovy的控制檯(http://groovyconsole.appspot.com/) - 爲把這些小片段中非常有用。 –

相關問題