短絡評価
「≪左辺≫ ≪論理演算子≫ ≪右辺≫」というような、論理演算子による式(論理演算子式)があるとする。左辺(第一引数)を評価した段階で式全体の値が定まらない場合のみ右辺(第二引数)を評価する、というのが短絡評価である。例えば、論理積 (論理AND) の第一引数を評価した結果が false であれば、式全体は必ず false になるし、論理和 (論理OR) の第一引数が true であれば、式全体は必ず true になる。いずれのケースも、第二引数を評価するまでもないので、途中で式の評価を打ち切ってかまわない。
前述のように多くの言語の論理演算子は短絡評価だが、Pascalでは「処理系依存」である。Adaでは両方を評価する演算子と短絡評価の演算子とが用意されている。Javaでは、短絡評価の論理演算子の他に、ビット演算の演算子のうち& (and) と| (or) が、ブーリアン型にもオーバーロードされた演算子(en:Operator overloading)となっていて、これらは短絡評価をしない。C言語では、C89以前のK&Rの初版から論理演算子が短絡評価されることが明確に書かれている。C++では組み込みの型に関する論理演算子はC言語と同様、短絡評価される。ただし、ユーザー定義型に関しては && や || をオーバーロードした場合、言語仕様によって定められた短絡評価ではなくなる。C++の論理演算の結果はboolとなるが、bool同士のビット演算の結果は整数昇格によりintとなる。