« 2009年春のアニメ新番組 1話感想(そのいち) | Main | X60にメモリ増強 »

三項演算子の正しい書き方

訳あってKsh93について調べていたんですが、Ksh93には三項演算子があったりします。三項演算子でググっているとこんなページを見つけました

三項演算子?:の正しい書き方

条件演算子は、正しくは以下のように書く。

condition ? true-expression
          : false-expression

なるほど、知りませんでした。確かに上げられている例を見てもわかるとおり、三項演算子はそれ全体の値を使いたいから使うのだというのがこう書けば明確に理解できます。

はてブのコメントを見ると、三項演算子は「if文を1行で書きたいとき」に使うのに改行しちゃ意味がないという意見があるんですが、別にif文を1行で書きたいんなら

if(i > 0){
    printf("OK\n");
}else{
    printf("NG\n");
}

if(i > 0)printf("OK\n");else printf("NG\n");

にするだけでいいわけですよ。これを

i > 0 ? printf("OK\n") : printf("NG\n");

にしても長さは4文字分しか変わってません。これじゃ「三項演算子なんてイラネ」と思うのも当然のこと。しかし、「三項演算子は簡単なif文を書くときに使うモノ」というのはそもそも誤解なわけです。

というのは、

if(i > 0){
    a = 1;
}else{
    a = -1;
}

a = i > 0 ?  1
          : -1;

と書きかえるのは同じ処理でも、明確に意図が違います。三項演算子は「条件によって値が違う」ことを表現する記法だということですね。

それにしても、

a = i >  0 ?  1:
    i == 0 ?  0:
             -1;

こういう書き方もあるとは。驚きです。

|
|

« 2009年春のアニメ新番組 1話感想(そのいち) | Main | X60にメモリ増強 »

パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/47905/44624691

Listed below are links to weblogs that reference 三項演算子の正しい書き方:

« 2009年春のアニメ新番組 1話感想(そのいち) | Main | X60にメモリ増強 »