1. ホーム
  2. java

[解決済み] ビット演算子とシングルアンパサンド [重複]について

2022-02-14 16:37:44

質問

<ブロッククオート

重複の可能性があります。
なぜ、通常 || ではなく | この違いは何ですか?

のようにアンパサンドを1つだけ使用することは可能ですか? & のようなビット演算子ではなく && ? また、この問題を明確に説明するための具体的な例はありますか?

どのように解決するのですか?

シングル & は、常に両方の条件をチェックします。ダブルの && は、最初の条件が false と評価されると、その時点で終了します。2つの条件のうち本当に1つだけ真か偽かが必要な場合、2つの条件を使うことは条件チェックを短絡的にする方法です。

例を挙げると、次のようになります。

if (myString != null && myString.equals("testing"))

もし myStringnull の場合、最初の条件は失敗し、わざわざその値をチェックすることはない。これがヌルポインターを避ける一つの方法です。

  • &¦ 両オペランドは常に評価されます
  • &&¦¦ 2番目のオペランドは必要なときだけ評価されます。

これらの使い方をかなり丁寧に説明しているページへのリンクです。

演算子に関するJavaクイックリファレンス