#5 Rubyで学ぶ条件分岐の基本
Rubyの条件分岐は、英語の文章に近い、読みやすさを重視した独自の書き方が用意されています。この記事では、Rubyにおける条件分岐の基本と、Rubyらしい書き方を解説します。
if文の基本
age = 20
if age >= 18
puts "成人です"
else
puts "未成年です"
end
他の多くの言語で使われる中括弧{}の代わりに、endという単語でまとまりの終わりを表すのがRubyの特徴です。
elsifで分岐を増やす
if age >= 65
puts "高齢者です"
elsif age >= 18
puts "成人です"
else
puts "未成年です"
end
else ifではなくelsifという1単語で書く点も、Rubyの特徴的な文法です。
後置if(修飾子if)という書き方
Rubyには、簡単な条件分岐を1行で書ける「後置if」という独自の書き方があります。
puts "成人です" if age >= 18
「もし〜なら」という日本語の語順とは逆になりますが、英語の文章のように「処理 if 条件」という自然な流れで読めるのが特徴です。
unlessという書き方
Rubyには、「〜でなければ」を表すunlessという書き方もあります。
puts "未成年です" unless age >= 18
ifの否定として使えますが、複雑な条件と組み合わせると読みにくくなることがあるため、シンプルな条件のときに使うのがおすすめです。
case文で分かりやすく分岐する
複数の値によって処理を分けたい場合は、case文を使うとif文を並べるより読みやすくなります。
case day
when "土", "日"
puts "休日です"
else
puts "平日です"
end
三項演算子で短く書く
「条件によって値を1つ選ぶ」だけの単純な分岐は、三項演算子でも書けます。
status = age >= 18 ? "成人" : "未成年"
Rubyならではの注意点
後置ifやunlessは便利な反面、多用すると条件が文章の後ろに隠れてしまい、かえって読みにくくなることがあります。1行で完結する簡単な条件のときだけ使う、という使い分けを意識しましょう。また、Rubyではfalseとnil以外のすべての値が「真」として扱われるため、数値の0や空文字""も条件式の中では真になる点に注意しましょう(他の言語との違いとして特に間違えやすいポイントです)。
まとめ
Rubyの条件分岐はif・elsif・else・endが基本ですが、後置ifやunless、case文のような読みやすさを重視した独自の書き方も特徴です。
本ページはプロモーションを含みます。
参考書籍(PR)
Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿