「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

三項演算子

pointこの用語のポイント

point演算子だよ

point「if ~ else ~」を一文で書きたいときに使うよ

pointあるいは、変数とか値が3つ出てくる演算子だよ

スポンサーリンク

簡単に書くよ

三項演算子(読:サンコウエンザンシ 英:ternary operator)とは

プログラミングで出てくる演算子のひとつ
であり

「if ~ else ~」を一文で書きたいときに使う演算子
です。

あるいは

演算子の分類のひとつ
であり

その演算子を使った計算を眺めると、変数(プログラミングにおける値を入れておく箱)とか値が3つ登場している演算子のこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

プログラム
プログラミング
if文


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

プログラムは「人間様の代わりにコンピュータさんにあれこれ命令してくれるやつ」です。
このプログラムを実際に作る作業を「プログラミング」と言います。

三項演算子

プログラミングはコンピュータさんに仕事を指示する行為です。
「この場合は、あれしろ」「この場合は、これしろ」と細かく指定していきます。

さて、このコンピュータさんに対する指示ですが、条件によって、やることを変えたい場合があります。
例えば「パンがあったらパンを食べる、パンがないけどケーキがあったらケーキを食べる、パンもケーキもなかったら暴れる」とかですね。

多くのプログラミング言語では、このような条件分岐の処理を「if文」と呼ばれる構文を使って書きます。
if文の書き方は

if(パンはある?){
 パンを食べる
}else{
 ケーキを食べる
}


のような形が一般的です。

ifの条件に一致したら、その下に行きます。
一致しなかったら、elseの下に行きます。
これがif文の書き方です。

三項演算子2

以上を踏まえて

if文を一文で書くときに使う演算子

が「三項演算子」です。

三項演算子を使った書き方は

条件式 ? 条件が正しいときの値 : 条件が間違っているときの値

に なります。
見やすさを考えて「?」と「:」を全角で書いていますが、本来はすべて半角で書きます。

例えば

if(変数1=="ほげ1"){
 変数2="ほげ2"
}else{
 変数2="ほげ3"
}


というプログラムのコードが あったとしましょう。
このコードは

1.変数1が「ほげ1」と同じだったら変数2に「ほげ2」を入れてね
2.違ったら変数2に「ほげ3」を入れてね


なif文です。

これを三項演算子を使って書くと

変数2=(変数1=="ほげ1") ? "ほげ2" : "ほげ3"

に なります。

三項演算子3

いかがでしょう?
見た目はややこしいですが、コンパクトになりましたよね?

とはいえ、if文を、三項演算子を使った形で書き直せるのは条件付きです。
詳しくは書きませんが、条件によって変数代入する値を変えるときのみ使えると思ってください。
条件がOKだったらあの処理とこの処理とその処理をやって~、NGだったらあっちの処理とこっちの処理をやって~、のように複雑な処理の書き換えはできません。

あとついでに、個人的な考えですが、三項演算子を使うと直感的に分かりにくくなる上に拡張性もなくなります。
処理を追加しようとすると、結局if文に書き直さないといけない場合が多いのですね。
そのため私自身は三項演算子を使わないように意識しています。

……というのが、プログラミングの話で出てくる「三項演算子」の説明です。
ここから先はプログラミングとは関係ない「三項演算子」の説明です。

世の中には「単項演算子」という演算子があります。
単項演算子は

式を書いたときに、被演算子(変数とか値)1つだけ出てくる演算子

です。

例えば、コンピュータの世界には「インクリメント演算子」という演算子があります。
このインクリメント演算子は単項演算子です。

三項演算子4

※インクリメント演算子の詳細が気になる方は、用語「インクリメント演算子」の説明を ご覧ください。

二項演算子」という演算子もあります。
二項演算子は

式を書いたときに、被演算子(変数とか値)2つ出てくる演算子

です。

例えば「1+2」という計算は被演算子が2つ(「1」と「2」)登場していますよね。
よって「+」は2項演算子です。

三項演算子5

同じ流れで考えてください。
三項演算子は

式を書いたときに、被演算子(変数とか値)3つ出てくる演算子

です。

プログラミングの話で出てくる三項演算子も、被演算子が3つ登場していますよね。

三項演算子6

本来の意味で言えば「被演算子が3つ出てくる演算子」が三項演算子です。
ただし、プログラミングの話では「if~elseを一文で書ける演算子」を指して「三項演算子」と表現していることが一般的です。


image piyo2

一言でまとめるよ

まぁ「三項演算子」って単語が出てきたら「if~elseをコンパクトに書ける演算子、もしくは、変数(プログラミングにおける値を入れておく箱)とか値が3つ出てくる演算子なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像057
書籍画像010

おまけ

■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた
ウォーターサーバーのキャッチコピーを100本考える方法