Lesson.31 相当数分岐
elseifの連続
今回は条件分岐ですがifを使わないまた違った方法を見ていきます。
elseifを連続してたくさんの分岐処理をしたい時がありますよね。
そんな時いちいちelseifを使って書いていては疲れますよね。
たとえば、次の例を考えます。
好きな動物を打ってもらい、その動物によってそれぞれ違った言葉を表示させます。
では、今までの方法、elseifを使って書いてみましょう。
例:
Dim animal
animal = inputbox("好きな動物を入力してね。")
if animal = "いぬ" then
msgbox "いぬは格好良いですね。"
elseif animal = "ねこ" then
msgbox "かわいいですね。"
elseif animal = "ひよこ" then
msgbox "ちっちゃいですね。"
elseif animal = "ぺんぎん" then
msgbox "寒い所に住んでいます。"
else
msgbox animal & "はどんな動物かわかりません。"
end if
animal = inputbox("好きな動物を入力してね。")
if animal = "いぬ" then
msgbox "いぬは格好良いですね。"
elseif animal = "ねこ" then
msgbox "かわいいですね。"
elseif animal = "ひよこ" then
msgbox "ちっちゃいですね。"
elseif animal = "ぺんぎん" then
msgbox "寒い所に住んでいます。"
else
msgbox animal & "はどんな動物かわかりません。"
end if
この場合、全部animalについて比較しているのに
何度もanimalと打つのはめんどうですよね。
Select Case
比較対象が同じで、「<」や「>」の比較ではなく「=」での比較のときは
「Select Case」を使うことによって楽にプログラミングすることができます。
では前の例を書き換えてみましょう。
例:
Dim animal
animal = inputbox("好きな動物を入力してね。")
select case animal
case "いぬ"
msgbox "犬は格好良いですね。"
case "ねこ"
msgbox "かわいいですね。"
case "ひよこ"
msgbox "ちっちゃいですね。"
case "ぺんぎん"
msgbox "寒い所に住んでいます。"
case else
msgbox animal & "はどんな動物かわかりません。"
end select
animal = inputbox("好きな動物を入力してね。")
select case animal
case "いぬ"
msgbox "犬は格好良いですね。"
case "ねこ"
msgbox "かわいいですね。"
case "ひよこ"
msgbox "ちっちゃいですね。"
case "ぺんぎん"
msgbox "寒い所に住んでいます。"
case else
msgbox animal & "はどんな動物かわかりません。"
end select
この場合、前回のように毎回animalと入力する必要がなくなりました。
そして見た目もすっきりして分かりやすいですよね。
また、今回は文字列で比較しましたが、数字でも大丈夫です。
ただし、この判定は「=」のときだけ、「<」などを使いたいときはいつも通りifを使用してください。
では使い方をまとめて練習問題に進みましょう。
まとめ
Select Case 比較元
Case 比較対象1
比較元と比較対象1が一致したときの動作
Case 比較対象2
比較元と比較対象2が一致したときの動作
Case .....(何回でもCaseを使うことができます。)
....
Case Else
いずれの場合にもあてはまらない場合の動作
End Select
Case 比較対象1
比較元と比較対象1が一致したときの動作
Case 比較対象2
比較元と比較対象2が一致したときの動作
Case .....(何回でもCaseを使うことができます。)
....
Case Else
いずれの場合にもあてはまらない場合の動作
End Select
練習
好きな果物を入力させ、りんご、ばなな、めろん、いちごの場合それぞれ言葉を表示させ(表示させる言葉は自由)、その他の場合は「他の果物を指定してね。」と表示させよ。
解答
Dim fruit
fruit = inputbox("好きな果物を入力してね。")
select case fruit
case "りんご"
msgbox "しゃきしゃきしていますね。"
case "ばなな"
msgbox "ふぃりぴんでよくとれます。"
case "めろん"
msgbox "夕張めろんは最高ですね。"
case "いちご"
msgbox "つぶつぶしていますね。"
case else
msgbox "他の果物を指定してね。"
end select
fruit = inputbox("好きな果物を入力してね。")
select case fruit
case "りんご"
msgbox "しゃきしゃきしていますね。"
case "ばなな"
msgbox "ふぃりぴんでよくとれます。"
case "めろん"
msgbox "夕張めろんは最高ですね。"
case "いちご"
msgbox "つぶつぶしていますね。"
case else
msgbox "他の果物を指定してね。"
end select