我思三項演算子的利便

C系の言語にだったら大抵は用意されている三項演算子
あれ便利ですよねー。
いちいちif文の()とかを書かなくて良いのはやっぱり便利だし、判定の結果、変数に何かを代入するなら分かりやすいし。


例のそいつはこんなやつ。

(A) ? (B) : (C)

if文に当てはめるならこう。

if(A){
     (B)
}else{
     (C)
}


こいつの何が便利かというと、if文なら

/*(A)は条件文*/

int i;
if(A){
     i = 1;
}else{
     i = 2;
}

こう書かなきゃいけないところを、

int i = (A) ? 1 : 2;

こんな風にすっきり書けるところ。
何、if文の中身(B)とelse文の中身(C)では変数に代入してるのがわかるけど、三項演算子では(B)と(C)で代入なんてしてないだろうって?
ここが「演算子」と言われる所以。
三項演算子


「(A)が真なら(B)を、偽なら(C)を、その式の値とする演算子


だからです。


わかりづらかったら、さらに説明。

1+2

有名な二項演算子「+」ですな。
上の例では、この式の値は「3」になります。


・・・わかりましたか?


true ? 1 : 2

この式の値は?


はい、その通り「1」です。


もし

false ? 1 : 2

なら「2」ですね。
そういうことです。だから代入だって出来ちゃうんです。


もちろん普通にif文の代わりにも使えますよ。
・・・読みづらくなるんで、普段使う分ならif文の方が良いと思いますけど。






以上、生存報告でした。
なに、生存報告にしちゃ長すぎるって?
いやぁ、今日バイトでプログラム書いてて、便利だなぁーって思ったものですから・・・