との条件は、私たちは、私は、イベントの一つ、B、Cをチェックする場合の条件を持っているとしましょう場合は...示すように真であることが:複数のOR句
if(a || b || c || .... || z)
do something
私の質問は、ということです条件cが真であることが分かります。その後、プログラムは条件d〜zを評価するか、「do something」命令を実行することになるか?
との条件は、私たちは、私は、イベントの一つ、B、Cをチェックする場合の条件を持っているとしましょう場合は...示すように真であることが:複数のOR句
if(a || b || c || .... || z)
do something
私の質問は、ということです条件cが真であることが分かります。その後、プログラムは条件d〜zを評価するか、「do something」命令を実行することになるか?
を使用しています。それが真の値に達するまで左から右の各条件を評価します。チェックを中止します。
|を使用すると、結果に関係なくすべての条件が評価されます。
if(a | b | c | .... | z)
int a = b = c = 1
があるとします。
++a || ++b;
を実行すると、文の後にa
が2になります。これは、OR節が条件の1つだけが真である必要があり、b
が1のままであるためです。コンパイラは、すでに真です。
ただし、--a || ++b
がある場合、a
は0と評価され、論理的にはfalse
となります。したがって、他の条件を確認し続けます。b
は2になりますが、これは論理的に真です。
何を覚えておく必要がありますか? OR条件のいずれかに該当する場合、コンパイラはさえ、他の条件を評価し続けない
このすべては、これは短絡評価と呼ばれるhere.
クリックし、
短絡評価の詳細については
と呼ばれています。 たとえば、javaは左から順にチェックします。 cが真の場合、残りの部分をチェックしないことを意味します。
しかし、これはすべての言語で当てはまるわけではありません。 たとえば、cshは右から左へ短絡評価を実行します。
は、選択したプログラミング言語に少し依存しますが、ほとんどの場合、最初の真はチェックを中断します – baao
[短絡](https://en.wikipedia.org/wiki/Short-circuit_evaluation) 'ing評価 – birdspider
ちょうどそれをテストする... –