プログラミングでの OR 演算子の使用: | vs ||
C# や PHP などのプログラミング言語で OR 式を操作する場合、二重パイプ (||) 演算子を使用するのが一般的です。ただし、場合によっては単一パイプ (|) も使用されます。これら 2 つの演算子の違いは何ですか?
短絡動作
二重パイプ (||) は「短絡」演算子です。これは、複数の条件を含む OR 式で、最初の条件が true と評価される場合、残りの条件は評価されないことを意味します。
例:
if (condition1 || condition2 || condition3)
条件 1 が true の場合、評価は停止し、条件 2 と条件 3 はチェックされません。
通常評価
対照的に、単一パイプ (|) 演算子は通常の評価を実行します。これは、最初の条件の結果に関係なく、OR 式内のすべての条件が常に評価されることを意味します。
if (condition1 | condition2 | condition3)
この例では、条件 1 が true の場合でも、3 つの条件すべてが評価されます。
潜在的な警告
一般に単一パイプ (|) 演算子の方がパフォーマンスが向上しますが、それには潜在的な注意点が 1 つあります。短絡 OR とは異なり、通常の OR 演算子は、null 参照または同様のエラーが発生しても評価を停止しません。
例:
if (class != null || class.someVar < 20)
クラスが null の場合、通常の OR 演算子はOR 演算子は引き続き class.someVar を評価しようとするため、NullReferenceException が発生します。
Bitwise演算
OR 式での使用に加えて、 |および & 演算子はビット単位の演算にも使用できます。このコンテキストでは、オペランドのバイナリ表現に対してバイナリ演算を実行します。
以上がプログラミングにおける「||」演算子と「|」演算子の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。