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について比較しているのに
何度も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と入力する必要がなくなりました。
そして見た目もすっきりして分かりやすいですよね。
また、今回は文字列で比較しましたが、数字でも大丈夫です。
ただし、この判定は「=」のときだけ、「<」などを使いたいときはいつも通りifを使用してください。
では使い方をまとめて練習問題に進みましょう。
まとめ
Select Case 比較元
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