caseに与える値によって条件分岐できる。
case a when 100 puts "a=100 です" when 50 puts "a=50 です" else puts "aは50でも100でもありません。" end
★結果
aが100のときは、「a=100 です」
aが50のときは、「a=50です」
それ以外のときは、「aは50でも100でもありません。」
となる。
ちなみに
条件には正規表現も使える。
a=%w!aa 1 bbb eee! #%記法 要素の区切りをスペースで表現 p a #ちゃんと配列ができているかの確認 a.each do |n| case n when /a/ puts "#{n}には「a」が含まれています。" when /b/ puts "#{n}には「a」が含まれています。" else puts "#{n}には「a」も「b」も含まれていません。" end end
※%記法についてはこちらに記載しています。
めんどうでない配列の作り方 %w記法
★結果
["aa", "1", "bbb", "eee"]
aaには「a」が含まれています。
1には「a」も「b」も含まれていません。
bbbには「a」が含まれています。
eeeには「a」も「b」も含まれていません。
複数の条件も指定できる
a=%w!aa 1 bbb eee! #%記法 要素の区切りをスペースで表現 p a #ちゃんと配列ができているかの確認 a.each do |n| case n when "aa","1" puts "#{n}はaaか1です" when "bbb","eee" puts "#{n}はbbbかeeeです" end end
★結果
["aa", "1", "bbb", "eee"]
aaはaaか1です
1はaaか1です
bbbはbbbかeeeです
eeeはbbbかeeeです
リンク