短絡評価
短絡評価(たんらくひょうか、英: short-circuit evaluation)または最小評価(さいしょうひょうか、英: minimal evaluation)とは、多くのコンピュータプログラミング言語の論理演算子における左辺(第一引数)と右辺(第二引数)の式の評価法のひとつである。
必ず実行されるようにするには、2つの式の評価順序を変えるか、あるいはまず両方の式を評価し、いったん結果を変数に格納してから論理演算するなどの対処が必要となる。
Javaなどの言語では短絡評価する演算子と短絡評価しない演算子を用意して、このような問題に対処している。
if文の条件式で使われる論理積や論理和の演算子は、if文の入れ子をコンパクトに表したものと見ることもできる。例えば、次の擬似コードの中で、&&演算子は短絡評価を行うとする。
これは、論理積を展開することで次のようにも表せる。
ブール論理の性質から、A_FALSE と B_FALSE というコード部分が、最初の例では FALSE_BRANCH という部分に集約されていることに注意されたい。後者の例の方が条件によって異なる処理を記述できるため、必要に応じて使い分けることになる。両者が結局同じことをするコードであれば、共通式削除や定数伝播といったコンパイラ最適化によって、どちらも同じコードを生成する可能性がある。
短絡評価を使ってコードの一部の条件付実行を実現することもできる。以下は Perl の例である。