読み込み中...

初心者必見!Rubyのwhen文を使った5つの便利な使い方

初心者が理解しやすいRubyのwhen文の使い方とその応用例の解説 Ruby
この記事は約5分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングを学んでいる皆さん、Rubyのwhen文は使いこなせていますか?

この記事では、Rubyのwhen文の使い方を初心者目線で徹底解説します。

この記事を読み進めることで、when文の基本的な使い方から、さらにはその応用例まで理解することができます。

Rubyのスキルアップを目指す皆さんにとって有益な情報が満載です。順を追って学んでいきましょう。

●Rubyのwhen文とは

Rubyのwhen文は、多岐にわたる条件分岐を一度に書くことができる便利な機能です。

基本的にはif文と同じように、条件によってプログラムの動きを制御するためのものですが、when文を使うと、さまざまな条件を簡潔に書くことができます。

○when文の基本

Rubyのwhen文は、次のような形で使用します。

case 変数
when 条件1
  処理1
when 条件2
  処理2
else
  処理3
end

このコードは、変数が条件1に当てはまるときには処理1を、条件2に当てはまるときには処理2を行います。

どの条件にも当てはまらないときにはelse節の処理3を行います。

●when文の使い方

それでは、具体的な使い方をサンプルコードを交えて見ていきましょう。

○サンプルコード1:単純な条件分岐

day = "Sunday"

case day
when "Sunday"
  puts "今日は日曜日です。"
when "Monday"
  puts "今日は月曜日です。"
else
  puts "今日は火曜日から土曜日の間の日です。"
end

このコードでは、変数dayの内容によって異なるメッセージを出力しています。

この例では、dayに”Sunday”が格納されているため、「今日は日曜日です。」と出力されます。

このようにwhen文を使うと、単純な条件分岐を一度に書くことができます。

当該コードの実行結果は次の通りです。

今日は日曜日です。

○サンプルコード2:範囲を用いた条件分岐

temperature = 30

case temperature
when 0..15
  puts "寒いです。"
when 16..25
  puts "適度な温度です。"
else
  puts "暑いです。"
end

このコードでは、温度によって異なるメッセージを出力しています。

Rubyのwhen文では範囲を用いることも可能です。

この例では、temperatureに30が格納されているため、「暑いです。」と出力されます。

当該コードの実行結果は次の通りです。

暑いです。

○サンプルコード3:配列を用いた条件分岐

fruits = "apple"

case fruits
when "apple", "banana", "orange"
  puts "このフルーツは基本的な果物です。"
when "kiwi", "pineapple", "mango"
  puts "このフルーツはトロピカルな果物です。"
else
  puts "このフルーツの分類は不明です。"
end

このコードでは、変数fruitsの内容によって異なるメッセージを出力しています。

Rubyのwhen文では、配列の要素として複数の条件を指定することも可能です。

この例では、fruitsに”apple”が格納されているため、「このフルーツは基本的な果物です。」と出力されます。

当該コードの実行結果は次の通りです。

このフルーツは基本的な果物です。

●when文の応用例

ここまで、基本的なwhen文の使い方を見てきました。

次に、応用例をいくつか見ていきましょう。

○サンプルコード4:多重のwhen文

number = 25

case 
when number % 5 == 0 && number % 3 == 0
  puts "FizzBuzz"
when number % 5 == 0
  puts "Buzz"
when number % 3 == 0
  puts "Fizz"
else
  puts number
end

このコードでは、数字が3の倍数、5の倍数、またはその両方であるかによって異なるメッセージを出力しています。

この例では、numberに25が格納されているため、「Buzz」が出力されます。複数の条件を組み合わせた複雑な条件分岐もwhen文を使えば一度に書くことができます。

当該コードの実行結果は次の通りです。

Buzz

○サンプルコード5:when文を用いたメソッドの定義

def grade(score)
  case score
  when 90..100
    "優秀"
  when 80..89
    "良い"
  when 70..79
    "可"
  else
    "不可"
  end
end

puts grade(85)

このコードでは、スコアに応じた評価を出力するメソッドを定義しています。

この例では、85というスコアが与えられた時、「良い」と評価されます。

メソッドの中でもwhen文を用いることで、状況に応じた挙動を簡単に設定することができます。

当該コードの実行結果は次の通りです。

良い

●注意点と対処法

Rubyのwhen文を使う際には、いくつかの注意点があります。

一つは、条件が一致する最初のwhen節だけが実行される点です。

複数のwhen節が一致する場合でも、最初に一致したwhen節の後のコードは実行されません。

これを意識して、条件を設定する順序を決めると良いでしょう。

また、when文では最後にelse節を書くことで、どのwhen節にも当てはまらない場合の処理を書くことができます。

しかし、else節を書かないと、どのwhen節にも当てはまらない場合は何も出力されません。

そのため、全ての可能性を網羅するためにもelse節は忘れずに書きましょう。

●カスタマイズ方法

Rubyのwhen文は非常に汎用性が高く、多様な条件分岐を実装することができます。

例えば、条件に範囲を用いる、複数の値を一つのwhen節に指定する、複数の条件を一つのwhen節で判定するなど、様々なカスタマイズが可能です。

まとめ

今回は、Rubyのwhen文の基本的な使い方から応用例、注意点と対処法、カスタマイズ方法までを紹介しました。

初心者の方がRubyでのプログラミングスキルを向上させる一助となれば幸いです。

当記事が、あなたのプログラミング学習に役立つ情報を提供できていることを願っています。