#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本