三項演算子(さんこうえんざんし、)は、数学やプログラミング言語で三つのオペランドを扱う演算子を指す語である。プログラミング言語では、三つの被演算子を取る演算子をいう。数学における演算のうち、三つの引数を取るものを三項演算(さんこうえんざん、)といい、普遍代数学では、非空集合上の写像として定義される。
アリティ 数学では、演算が取る引数の個数をアリティという。プログラミング言語では、演算子が取る被演算子の個数をアリティという。普遍代数学では、非空集合と非負整数に対して、上の項演算を写像と定義し、をそのアリティとする。アリティが1、2、3である演算は、それぞれ単項演算、二項演算、三項演算と呼ばれる。プログラミング言語の演算子は、被演算子数によって単項、二項、三項などに分類される。
数学における三項演算
ヒープ は、一つの三項演算を備えた代数的構造であり、群の演算からと定めることで得られる。ヒープの三項演算は、次の恒等式を満たす。
逆に、ヒープの元を一つ選び、と定めると、を単位元とする群構造が得られる。選ぶ元を変えて得られる群は互いに同型である。
三項系 代数学における三項系は、体上のベクトル空間と、上の三重線型写像との組である。ジョルダン三項系やリー三項系などがあり、非結合代数の理論やリー代数の構成に現れる。
プログラミング言語における三項演算子
プログラミング言語では、演算子のアリティは被演算子の個数であり、三項演算子は三つの被演算子を取る。Java、JavaScript、Pythonにおける条件式の記法例を次に示す。
+ 条件式の記法例 言語 記法 仕様または文献上の説明 Java 条件 ? 真の場合の式 : 偽の場合の式 Java言語仕様では、条件演算子は三つの被演算子となる式を持つ。第1の式はbooleanまたはBooleanでなければならず、その値に応じて第2の式または第3の式の一方が評価される。 JavaScript 条件 ? 真の場合の式 : 偽の場合の式 MDNは、条件演算子をJavaScriptで三つの被演算子を取る唯一の演算子として説明している。第1の被演算子の評価結果に応じて、第2または第3の被演算子の一方だけが評価される。 Python 真の場合の式 if 条件 else 偽の場合の式 Pythonの公式文書では、条件式を「ternary operator」と呼ぶ場合があると説明されている。条件を先に評価し、その結果に応じて二つの式の一方だけを評価する。
脚注