ホームページ >Java >&#&チュートリアル >論理 OR (||) とビットごとの OR (|): ショートサーキットを選択する必要があるのはどのような場合ですか?
一般的にビットごとの OR (|) よりも論理 OR (||) を好む理由
プログラミングでは、論理 OR (||) とビットごとの OR (|) 演算子は、一方または両方のオペランドが true の場合、両方とも true と評価されます。ただし、 || の使用に有利な重要な違いがあります。 over |: short-circuiting.
論理 OR による短絡の利点
論理 OR(||) を使用すると、評価はすぐに停止します。 true オペランドが見つかりました。これにより、必要でない場合に後続のオペランドが評価されなくなります。次の点を考慮してください。
if(true || false) // Passes if(false || false) // Doesn't pass
最初のケースでは、最初のオペランドがすでに true であるため、2 番目のオペランドを評価する必要はありません。同様に、論理 AND(&&) や論理 NOT (!) などの他の論理演算子も使用します。一方、
ビットごとの OR と論理 OR
ビットごとの OR 、結果に関係なく両方のオペランドを評価します。これは、ビットの設定やクリアなどのビット操作を実行するシナリオで有利です。ただし、ブール演算の場合、論理 OR の短絡動作には大きな利点があります。
if(string != null && string.isEmpty()) // Checks for null before calling isEmpty()
一般に、ブール演算にはビット単位の OR (|) よりも論理 OR(||) を使用することをお勧めします。これは、短絡、パフォーマンスの最適化、および演算の利点があるためです。 null 参照チェック中の安全性チェック。
以上が論理 OR (||) とビットごとの OR (|): ショートサーキットを選択する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。