三項演算子(?:)どうやって書いていますか


三項演算子(?:)は可読性が上がる下がるという議論があります。
私は書き方次第で、読みやすいと感じています。
可読性の話はよくあるので、実際どう頭に馴染ませるかという話を書きます。

三項演算子(?:)は、読みやすいけど、書きづらい?

可読性が高い三項演算子の書き方を後輩に伝えたところ、(言語はJava)
「前に調べて、確かに見やすいんですけど、書くときわすれちゃうんですよね。毎回調べて考えて書きます。」
と言われたので、自分がソースを書くときにどのように書いているか話しました。
それなりに良かったみたいなので記事にします。

私は、以下の感じでコーディングしていますが、皆さんいかがでしょうか。

例: 10以上だったらAプランで、5上だったらBプランで、それ以下ならCプラン

いろいろ書き方はありますが、コーディングスタイルとしては例えばこんな風にかきますね。

String plan = count > 10 ? "A" :
              count > 5  ? "B" :
              /* other*/   "C" ; 

とか

String plan = count > 10 ? "A" 
            : count > 5  ? "B"
            : /* other*/   "C" ; 

上の書き方は、「:」が行の最後にあり、「まだ条件が次の行に続くぜ」感があって、
私は好きなのですが、よく見かける書き方は下ですね。

唱えながらコーディング

私は、次のようには頭で唱えながら書きます。括弧内を頭の中で唱えています。

一度慣れると自然使えるようになります。
この唱えながらコーディングするのを、3,4回くらい繰り返すと、
それ以降は脳ミソが三項演算子の文法に費やす時間が少なくなり、
自然にコーディングできるようになります(・・・と思います)。

(プランは count > 10 (の場合は) "A" (・・・)
     count > 5  (の場合は) "B" (・・・)
        それ以外の場合は、)      "C" ; 
実際に書く文字/読む文字 頭で唱える言葉
? の場合は?
: ・・・で、
/* other */ それ以外の場合は、

雑感

  • 唱えながらコーディングに慣れると三項演算子の文法を頭で考えなくて済む。頭はもっと全体の構成とかそういったことに使ったほうがいい。
  • 唱えながらコーディングをするとコーディングにリズムができる。新人さんにはいいかもしれない。
  • 多分コーディングが早い人はこんなことやらなくても自然にコードが浮かんできてる。