読み方 : たんらくひょうか
短絡評価【short-circuit evaluation】ショートサーキット評価
概要

論理積演算子(&&)を使った if(条件A && 条件B) のような式では、条件Aが偽(false)であれば、条件Bの真偽に関わらず式全体は必ず偽になる。短絡評価では、このような場合に条件Bの評価は実行されない。
論理和演算子(||)の場合は真偽が逆の場合に同じことが起こり、左辺が真(true)であれば式全体は必ず真となるため、やはり右辺はスキップされる。いずれも、結果が確定した時点で後続の評価を打ち切る。
短絡評価は不要な計算を省いて実行速度を向上させる効果があるほか、エラーの回避に利用されることもある。例えば、「対象がnullでない、かつ、対象の内容が特定の条件を満たす」という式では、左辺でnullと判明した時点で右辺の参照処理がスキップされるため、null値に何らかの処理を実行しようとする際に発生する実行時エラーを未然に防ぐことができる。このような記述パターンは多くのプログラムで用いられる。
なお、右辺に変数の更新や関数呼び出しなど外部へ作用を及ぼす「副作用」を伴う処理が含まれる場合は注意が必要である。左辺の評価結果によっては右辺が実行されないため、常に実行されることを前提にしたコードを記述すると意図しない挙動の原因となる。
論理演算子とビット演算子を別に持つ言語では、ビット論理積(&)やビット論理和(|)には通常、短絡評価が適用されない。Javaなどでは真偽値の演算にこれらのビット演算子を適用することも可能であり、短絡評価を行う「&&」「||」と使い分けることで、右辺を必ず評価させるかどうかを明示的に制御できる。
(2026.7.1更新)