条件演算子 【conditional operator】
概要
条件演算子(conditional operator)とは、「X ? a : b」という書式の演算子で、条件Xが真ならaを、偽ならbを返すという演算を行うもの。3つの項(被演算子)を取る三項演算子である。条件分岐を式の形で簡潔に記述することができる。条件文の「if X then a else b」と同じ操作を演算子の形で実装したものと考えることができるが、if文と異なり式であるため結果を変数に代入することができ、「r = s > 70 ? "合格" : "不合格"」のように閾値を境に代入値が切り替わる処理などを見通しよく簡潔に記述できる。
C言語やC++言語、Java、JavaScript、PHP、Perlなどで「X ? a : b」という書式の条件演算子を利用することができるが、Rubyではこの形式に加えて、if式を用いて「if X then a else b end」と記述できる。Pythonでは「a if X else b」という構文を用いる。
なお、「X ? ( Y ? ( Z ? a : b ) : c ) : d )」のように何段階も入れ子状にして複雑な分岐を記述することもできるが、コードの見通しが悪くなるため推奨はされない。可読性を維持しながら条件演算子を記述するのはセンスが問われるため、コーディング規約などで一律に条件演算子の使用を禁じる場合もある。
3つの項を取る演算子は数学にはいくつもあるが、多くのプログラミング言語では存在しないか条件演算子だけであることが多いため、プログラミング分野では「三項演算子」を条件演算子の同義語のように扱う場合もある。言語によっては他の三項演算も存在するため文脈に注意する必要がある。
(2024.2.9更新)