涼の成長記録

自らの人生に主導権を持つべく、独立を目指して2014年3月31日を持ってITエンジニアを退職。そんな23歳♂の成長記録。

やっぱり条件演算子を使いたい

以前のような記事を書いた底辺プログラマーの私ですが、それでも条件演算子を使いたいタイミングがあります。
条件演算子を使いこなせない - 涼の成長記録


これは、完全に私の勝手な美学以外の何者でもないのですが、こういう文が気持ち悪いのです。

// 大きかった数値を返すだけのルーチン。
int big(int a, int b) {
    if (a > b) {
        return a;
    }
    else {
        return b;
    }

    // ここにreturnがないと気持ち悪い。
}


「わかんねーよ!」という声が聞こえてきそうですが、何故か気持ち悪いのです。ifとelseで確実にreturnを通ることは分かるのですが、それでも一番最後はreturn文であってほしい。じゃあ、こう書くのか。

// 大きかった数値を返すだけのルーチン。
int big(int a, int b) {
    if (a > b) {
        return a;
    }

    // (a <= b)の条件で絶対来るからelseいらないじゃん!
    return b;
}


いや、これも気持ち悪いのです。何となくでしかないので説明できないのですが、(a > b)であれば a , そうでなければ b と明確に書かれていないからです。A型の几帳面さが、ここで出てくるというのか!


そんな謎の美的センスを持つ私が辿り着く先は、やはり条件演算子なのです。条件演算子かわいいよ、条件演算子

// 大きかった数値を返すだけのルーチン。
int big(int a, int b) {
    return (a > b) ? a : b;
}


こんな簡単なルーチンなので、明らかにこの方が可読性が高く見えるのですが、実際現場で組むようなコードは、少し複雑さを増します。下記程度でも、既に醜いです。多分if, elseの方がパッと見の理解スピードは速いと思います。

return (itr != m_SampleMap.end()) ? itr->second : "Not found.";


しかし俺は条件演算子を使いたい!

それだけ叫びたいがための記事でした。いやー、プログラミングって楽しいですね。
ではでは。