-8

次のようなand演算子を使用するとします。

if (a.enable() && b.enable())

したがって、上記のステートメントは、続行するには両方のステートメントが真である必要があることを示しています

a.enable()false を返す場合はどうなるでしょうか。

if (a.enable() && (b.enable() || c.enable()))

したがって、この上記のステートメントは、それa.enable()が真である必要があり、2 番目の部分から、b.enable()または真である必要があることを意味しc.enable()ます。続行するには、いずれかが true である必要がありますが、a.enable()true でない場合、条件はそれ以上のチェックなしで失敗します。

これは正しいです?

4

2 に答える 2

10

はい、&&を意味ANDし、 を||意味しORます。そして、それらは両方とも短絡しているため、次の場合:

if (a.enable()  &&  b.enable())

b.enable()a.enable()false を返す場合は呼び出されません。

また、次の場合:

if (a.enable()  ||  b.enable())

b.enable()a.enable()true を返す場合は呼び出されません。

それが次のような条件を可能にするものです

if (s != null && s.equals(foo))

これはNullPointerException、オペレーターが短絡していない場合に発生します。

于 2013-01-05T10:42:37.300 に答える
-1
if (a.enable()  &&  b.enable())

2 番目の条件は、1 番目の条件が真の場合にのみ呼び出されます。

于 2016-05-18T19:31:21.533 に答える