導入
if/elsif を何個も並べると、1つの変数の値によって分岐しているのに読みにくくなることがあります。そんなときは case/when を使うとすっきり書けます。
説明
case 変数 のあと、when 値 を並べて分岐します。
signal = "yellow"
case signal
when "red"
puts "止まれ"
when "yellow"
puts "注意"
when "green"
puts "進め"
else
puts "不明な信号"
end
when には範囲(Range)も書けます。値がその範囲に含まれるかどうかで分岐します。
score = 85
case score
when 90..100
puts "優"
when 70...90
puts "良"
else
puts "可"
end
90..100 は90から100まで(100を含む)、70...90 は70から90未満(100を含まない ... は3つドット)を表す範囲です。範囲については後のレッスンでもう少し詳しく扱います。
やってみよう
signal や score の値をいろいろ変えて、どの when に当てはまるか確かめましょう。when の行を1つ増やしてみるのもよい練習です。
演習
変数 day に "sat" を代入し、case/when で "sat" か "sun" なら "休日"、それ以外なら "平日" と表示してください(when に複数の値をカンマ区切りで書けます)。
ヒント1を見る
when "sat", "sun" のようにカンマで複数の値をまとめられます。
ヒント2を見る
case day → when "sat", "sun" → else の順です。