短絡評価 【short-circuit evaluation】 ショートサーキット評価
概要
短絡評価(short-circuit evaluation)とは、論理演算子の評価の仕方の一つで、左辺の評価で値が確定したら右辺の評価を省略する方式。多くのプログラミング言語で論理和や論理積の評価に採用されている。論理積演算子(~かつ~)を用いた「if( 条件A && 条件B )」のような条件式があるとき、左辺の条件Aが偽(false)であるなら、右辺が真(true)だろうが偽だろうが式の評価結果は必ず偽となる。このような場合に右辺の評価をスキップするのが短絡評価である。
論理和演算子(~または~)の場合にも、左辺が真であれば右辺がいずれであっても真となるため、短絡評価が可能である。右辺側で状態の変更(副作用)を伴う式や関数呼び出しを行う場合は、常に実行されるとは限らないため注意が必要である。
論理演算子とビット演算子(ビット論理和「|」やビット論理積「&」)が分かれている言語では、通常、ビット演算子では短絡評価を行わない。Javaのようにビット演算子を論理演算子の代わりにブーリアン型(真偽値)の演算にも適用できる言語もあり、開発者が短絡評価をさせたいかさせたくないかを選択することができる。
(2023.7.13更新)