さて、条件分岐2回めです(`・ω・´)
今回は、たくさんの条件分岐がある場合に便利なcase文を見ていきたいなと。
大量のif文書くのめんどくさい(*´Д`)みたいな、分岐がたくさんある場合とか便利です。
今回使うcase文の構文はこちらっ
case 変数
when 値1 then
値1と一致する場合に行う処理
when 値2 then
値2と一致する場合に行う処理
when 値3 then
値3と一致する場合に行う処理
else
どの値にも一致しない場合に行う処理
end
いちいち『if ○○ then~ elsif ✕✕~(*´Д`)』とめんどくさくなくていいですねぇ。
では今回これを使って、
以下のようなプログラムを書いてみました。
# encoding: utf-8
#変数に値を代入
name = "管理人"
favorite = "赤"
#favoriteの値によって条件分岐
case favorite
when "緑" then
shouten_member = "歌丸師匠"
when "水" then
shouten_member = "小遊三師匠"
when "ピンク" then
shouten_member = "好楽師匠"
when "黄" then
shouten_member = "木久扇師匠"
when "灰" then
shouten_member = "昇太師匠"
when "紫" then
shouten_member = "園楽師匠"
when "オレンジ" then
shouten_member = "たい平師匠"
when "赤" then
shouten_member = "山田くん"
else
shouten_member = "いません"
end
#結果を表示
print "name = ",name,"\n"
print "favorite = ",favorite,"\n\n"
print name," さんが好きな笑点メンバーは、",shouten_member,"。\n\n"
ほい。こんな感じです。
このプログラムは、好きな色から、好きな笑点メンバーを当ててくれるという、
夢の様なプログラムです(`・ω・´)
………………(´・ω・`)
favoriteの中味を変えて実行した結果はこちらです(´・ω・`)
ほい。うまく分岐できましたね。
他には、こんな使い方も出来ます。
# encoding: utf-8
#変数に値を代入
name = "管理人"
favorite = "赤"
#shouten_member = ""
#favoriteの値によって条件分岐
case favorite
when "緑" then
shouten_member = "司会者"
when "水","ピンク","黄","灰","紫","オレンジ" then
shouten_member = "回答者"
when "赤" then
shouten_member = "座布団運び"
else
shouten_member = "ありません"
end
#結果を表示
print "name = ",name,"\n"
print "favorite = ",favorite,"\n\n"
print name," さんが得意な役職は、",shouten_member,"。\n\n"
この場合のポイントはここ。
when "水","ピンク","黄","灰","紫","オレンジ" then
こんな風に、『,(カンマ)』で区切ってあげれば、
複数の値を指定してあげることも可能です。
この場合だと、緑では『司会者』、赤だと『座布団運び』、それ以外の色だと『回答者』、
該当する色がない場合は”ありません”と表示されます。
では色々と値を変えて結果をみてみまっしょい。
こんな感じです。灰色と紫の場合も、
キチンと回答者に振り分けられてますね(`・ω・´)
さて、このcase文ですが、あくまで条件分岐の仲間です。
ですので、同じ結果を出すプログラムを、if文でも書けます。
というわけでやってみました。
最初のプログラムをif文で書き換えてみます。
こんな感じ。
# encoding: utf-8
#変数に値を代入
name = "管理人"
favorite = "緑"
#favoriteの値によって条件分岐
if favorite === "緑" then
shouten_member = "歌丸師匠"
elsif favorite === "水" then
shouten_member = "小遊三師匠"
elsif favorite === "ピンク" then
shouten_member = "好楽師匠"
elsif favorite === "黄" then
shouten_member = "木久扇師匠"
elsif favorite === "灰" then
shouten_member = "昇太師匠"
elsif favorite === "紫" then
shouten_member = "園楽師匠"
elsif favorite === "オレンジ" then
shouten_member = "たい平師匠"
elsif favorite === "赤" then
shouten_member = "山田くん"
else
shouten_member = "いません"
end
#結果を表示
print "name = ",name,"\n"
print "favorite = ",favorite,"\n\n"
print name," さんが好きな笑点メンバーは、",shouten_member,"。\n\n"
なんだかごっちゃごちゃですねぇ(;・∀・)
これで同じ結果が出るはずです。
ちなみによく見ると、条件式のところが
『favorite == “緑”』ではなく、『favorite === “緑”』となってまして、
ちょっと違います。
『==』と『===』の違いは、また後日やると思います。
とりあえずは『===』の存在だけ覚えておいていただければ……
まぁそんなわけで、2回に渡る条件分岐でした。
他にもあるのですが、大体使うのはこのへんかなと。