後置条件式
「if
の中身が1行しかないのに、わざわざif、本体、endと3行も使ってしまうのが気持ち悪い...」と設計者が考えたのかどうかは定かではありませんが、Rubyではif
や unless
を1行に収めて書くことができます。
例えば、帰宅したあと疲れてなければジョギングして、成人していればビールを飲んでから寝る、というコードは次のように書けます。
条件式と処理内容がともに単純なコードであれば、すっきりと読みやすくなります。
三項演算子
Rubyの三項演算子を使うと、 if <cond> then <true_clause> else <false_clause> end
のif文を <cond> ? <true_clause> : <false_clause>
と書くことができます。
もし elsif
を含むif式を三項演算子にしようとすると、次のようにネストさせる必要があります。
しかしここまで来ると逆に可読性が悪くなってしまいます。条件分岐がネストするときは素直にifか後述のcaseを使ったほうが無難です。
次のページではcase式を紹介し、最後にifやcaseが「値を返す」ことに触れます。