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に関するよくある質問
caseが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのcaseやif、else、redo、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
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」カテゴリーが追加されましました!