0

重複の可能性:
&&(AND)および|| (または)JavaIFステートメント

if(foo || bar) {

}

fooがtrueの場合、それはbarに入ります

4

3 に答える 3

7

いいえ、短絡評価||と呼ばれるものを使用します。これは最小評価とも呼ばれ、 (左から右に)評価する式が見つかるとすぐに条件の評価を停止します。true

JLSから:

15.24。条件付き-または演算子||

条件付き演算子|| 演算子は|のようなものです (§15.22.2)ただし、左側のオペランドの値がfalseの場合にのみ、右側のオペランドを評価します。

&&同様の方法で動作します:

15.23。条件付き-そして演算子&&

条件付き演算子&&は&(§15.22.2)に似ていますが、左側のオペランドの値がtrueの場合にのみ右側のオペランドを評価します。

于 2012-08-27T11:55:03.497 に答える
1

||&&は両方とも短絡論理演算子です。

2つの式がOR(||)で結合されている場合、最初の式が真であれば、答えは常に真になります。

||      true     false
true    true     true
false   true     false
于 2012-08-27T11:55:57.117 に答える
1

&&||結果がわかったらすぐに評価を停止します。したがって、たとえば:

if (a == null || a.get() == null)

aがnullの場合、2番目の部分は評価されず、NullPointerExceptionのリスクがないため、うまく機能します。

&両方の式を評価する場合は、無条件または|:を使用できます。

if (a == null | a.get() == null)

最初の条件が真であるかどうかにかかわらず、両方の条件を評価します。

このスレッドは、それを実現したい場合の例を示しています。

于 2012-08-27T12:00:16.647 に答える