三項演算子 【ternary operator】

概要

三項演算子(ternary operator)とは、三つの項(被演算子)を用いて一つの結果を得る演算子。数学には様々な三項演算子があるが、プログラミングの分野では単に三項演算子といえば条件式真偽に応じて二つののいずれか片方を返す「条件演算子」のことを指すことが多い。

条件演算子は「X ? a : b」という書式演算子で「条件Xが真ならaを、偽ならbを返す」という演算をう。C言語C++言語JavaJavaScriptPHPPerlなどでこの形式の条件演算子を利用することができる。Rubyではこの形式に加え、ifを用いて「if X then a else b end」と記述できる。Pythonでは「a if X else b」という構文を用いる。

条件文の「if X then a else b」と同じ操作を演算子の形で実装したものと考えることができるが、if文と異なりであるため結果を変数代入することができ、「r = s > 70 ? "合格" : "不合格"」のように閾値を境に代入値が切り替わる処理などを見通しよく簡潔に記述できる。

なお、「X ? ( Y ? ( Z ? a : b ) : c ) : d )」のように何段階も入れ子状にして複雑な分岐を記述することもできるが、コードの見通しが悪くなり、一見してどのような処理をっているのかが分かりにくくなるためあまり推奨はされない。コーディング規約で三項演算子の使用を禁じる場合もある。

ほとんどのプログラミング言語では三項を取る演算子は存在しないか条件演算子のみであるため、「三項演算子」と「条件演算子」はほとんど同義語のように扱うこともあるが、Python配列に対するスライス演算のように条件演算以外の三項演算が存在する言語もある。

一方、「a++」のように一つの項のみを用いて演算を演算子を「単項演算子」(unary operator)、「a+b」のように二つの項を用いて演算を演算子を「二項演算子」(binary operator)という。

(2024.2.9更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる