Ruby

Ruby case文

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です

-Ruby