Java:論理演算子「|| と |」、「&& と &」の違いについて

Javaで論理演算子を使用する場合は主に|| や && を使用していると思いますが、| や &でも指定可能です。ということで「|| と |」、「&& と &」の違いについてメモしておきます。

「|| と |」の違い

  • Javaサンプルソース
    以下のソースでは「||」で判定している11行目では左辺の結果はtrueにより右辺の式は評価されずにnullポで落ちることはないですが、17行目の「|」では右辺の式も評価されてしまうのでnullポで落ちます。

    イメージ

  • 実行結果:コンソール
    以下の様に17行目でNullPointerExceptionが発生しています。

「&& と &」の違い

  • Javaサンプルソース
    以下のソースでは「&&」で判定している10行目では左辺の結果はfalseにより右辺の式は評価されずにnullポで落ちることはないですが、16行目の「&」では右辺の式も評価されてしまうのでnullポで落ちます。

    イメージ

  • 実行結果:コンソール
    以下の様に16行目でNullPointerExceptionが発生しています。

 

コメントを残す

メールアドレスが公開されることはありません。

email confirm*

post date*