我思三項演算子的利便
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文の方が良いと思いますけど。
以上、生存報告でした。
なに、生存報告にしちゃ長すぎるって?
いやぁ、今日バイトでプログラム書いてて、便利だなぁーって思ったものですから・・・