1. ホーム

[解決済み】なぜ私たちは通常、||を||よりも||使うのですか?その違いは何ですか?

2022-04-04 21:43:53

質問

なぜ通常、論理和を使うのでしょうか? || 2つのブーリアン間のビット単位のORではなく | しかし、どちらも正常に動作しています。

つまり、以下を見てください。

if(true  | true)  // pass
if(true  | false) // pass
if(false | true)  // pass
if(false | false) // no pass

if(true  || true)  // pass
if(true  || false) // pass
if(false || true)  // pass
if(false || false) // no pass

を使用することはできますか? | の代わりに || ? と同じです。 &&& .

解決方法は?

を使用すると ||&& 形式ではなく |& の形式では、Java は右側のオペランドだけをわざわざ評価することはありません。

評価を短絡させるかどうかの問題です --。 最も ということです。

短絡的に考えることのメリットを説明するには、次のような例を考えてみるとよいでしょう。

Boolean b = true;
if(b || foo.timeConsumingCall())
{
   //we entered without calling timeConsumingCall()
}

Jeremy と Peter が言及したように、短絡的な処理に対するもう一つの利点は、ヌル参照チェックです。

if(string != null && string.isEmpty())
{
    //we check for string being null before calling isEmpty()
}

詳細情報