メインメニューを開く

三項演算子(ternary operator)とは、C言語などの一部のプログラミング言語に採用されている以下のような条件演算子のひとつである。

<条件式> ? <真式> : <偽式>

3項を結ぶ必要上、「?」と「:」の2つの記号を使うが、演算子としては1つの演算子である。

主に簡単な条件分岐を「簡潔明瞭に」一行で書きたいときに使われる。

<条件式>は真(true)または偽(false)の論理値を返す論理式(ブール型)である。C言語では他の条件式同様に「ゼロより大きいか」で判断と非常に緩い。一方でJavaやC#などではきっちりブール型でなければ通らないため、キャストなどを挟み可読性を落とすなど扱いを誤ると「簡潔明瞭」ではなくなる両刃の剣となる。

この構文自身も式であるので値をもち、その値は上記<真式>または<偽式>の値のいずれかである。<条件式>が真の場合は<真式>、偽の場合は<偽式>の値となる。

利点

  • 簡潔に書ける場合に限り簡潔明瞭

欠点

関連項目