{category}

Ruby - 条件分岐

case

ケース(制御構造と繰り返し

意味 複数の条件分岐


caseとは?

caseは複数の条件分岐を簡潔に記述するための制御構造です。特定の値や条件に応じて異なる処理を実行する際に便利です。

caseの具体的な使い方

曜日による分岐の例

def weekday_status(day)
  case day.downcase
  when "月", "火", "水", "木", "金"
    "平日です。仕事や学校がある日ですね。"
  when "土", "日"
    "週末です。ゆっくり過ごせる日ですね。"
  else
    "無効な曜日です。月〜日の日本語で入力してください。"
  end
end

puts weekday_status("水")
puts weekday_status("日")
puts weekday_status("月曜日")

👇出力結果

平日です。仕事や学校がある日ですね。
週末です。ゆっくり過ごせる日ですね。
無効な曜日です。月〜日の日本語で入力してください。

この例では、曜日を引数に取る関数weekday_statusを定義しています。caseを使用して曜日に応じたメッセージを返します。平日、週末、無効な入力のそれぞれに対して適切なメッセージを出力します。

範囲とクラスを使用した分岐例

def classify_object(obj)
  result = case obj
  when 0..9
    "1桁の数字です"
  when 10..99
    "2桁の数字です"
  when String
    "文字列です(長さ: #{obj.length}文字)"
  when Array
    "配列です(要素数: #{obj.length})"
  else
    "その他のオブジェクトです"
  end

  puts "入力されたオブジェクト '#{obj}' は#{result}"
end

classify_object(5)
classify_object(42)
classify_object("Ruby")
classify_object([1, 2, 3])
classify_object({a: 1, b: 2})

👇出力結果

入力されたオブジェクト '5' は1桁の数字です
入力されたオブジェクト '42' は2桁の数字です
入力されたオブジェクト 'Ruby' は文字列です(長さ: 4文字)
入力されたオブジェクト '[1, 2, 3]' は配列です(要素数: 3)
入力されたオブジェクト '{:a=>1, :b=>2}' はその他のオブジェクトです

この例では、様々な型のオブジェクトを分類する関数classify_objectを定義しています。caseを使用して、数値の範囲、文字列、配列、その他のオブジェクトを判別し、適切な説明を出力します。

caseに関するよくある質問

Q. caseとif-elsif文の違いは?
A. caseはより簡潔で読みやすい構文を提供し、複数の値や範囲に対する比較に適しています。if-elsifは複雑な条件式に適しています。
Q. caseで複数の値を指定できますか?
A. はい、カンマで区切って複数の値を指定できます。例:when 1, 2, 3
Q. caseで範囲を使用できますか?
A. はい、Rubyでは範囲オブジェクトを使ってcaseの条件を指定できます。例:when 0..9
Q. caseのelseは必須ですか?
A. いいえ、elseは必須ではありません。ただし、想定外の値に対処するためにelseを使用することが推奨されます。

caseが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのcaseやif、else、redo、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

if

条件が真の時に実行

種類: 条件分岐

else

条件が偽の時に実行

種類: 条件分岐

redo

ループを現在位置から再開

種類: ループ

Dir.glob

ファイル名のパターンマッチ

種類: ディレクトリ操作

match

正規表現とのマッチングを行う

種類: 文字列操作