Lesson.30 条件分岐(5) 複数回の分岐
ifを2回使う
今までのifではelseとあわせても2とおりにしか場合わけできませんでした。
しかしこんな例を考えて見ましょう。
今回は「朝」「昼」「夜」のどれかを表示させるプログラムを作るとします。
ここでは便宜上、0時から8時までを「朝」、9時から16時までを「昼」、17時から23時までを「夜」とします。
今回は3通りで少し工夫が必要ですね、ifを2回使うことにより書くことができます。
まずはそれを書いてみます。
例:
nowh = hour(now)
if nowh <= 8 then
msgbox "朝です。"
else
if nowh <= 16 then
msgbox "昼です。"
else
msgbox "夜です。"
end if
end if
if nowh <= 8 then
msgbox "朝です。"
else
if nowh <= 16 then
msgbox "昼です。"
else
msgbox "夜です。"
end if
end if
これも2段組で結構醜いですね。
そんなときに使うのが「elseif」というものです。
これは「前の条件が違ってこの条件が満たされるならば」という意味です。
なんかわかりにくいですね。プログラムを見て見ましょう。
例:
nowh = hour(now)
if nowh <= 8 then
msgbox "朝です。"
elseif nowh <= 16 then
msgbox "昼です。"
else
msgbox "夜です。"
end if
if nowh <= 8 then
msgbox "朝です。"
elseif nowh <= 16 then
msgbox "昼です。"
else
msgbox "夜です。"
end if
こちらのほうがきれいですっきりしますね。
ちなみにelseifは何度も使えます。
まとめ
elseifの使い方
if (比較条件式1) then
(比較条件式1を満たした場合の動作)
elseif (比較条件式1以外の場合の比較条件式2) then
(比較条件式2を満たす場合の動作)
elseif .......
......
else
(どれにも該当しない場合)
end if
(比較条件式1を満たした場合の動作)
elseif (比較条件式1以外の場合の比較条件式2) then
(比較条件式2を満たす場合の動作)
elseif .......
......
else
(どれにも該当しない場合)
end if
練習
現在の時が0時から6時までのとき、「おはようございます。」と表示させ、
7時から12時までのとき「間もなく昼御飯です。」と表示させ、
13時から18時までのとき「もう夕食の時間です。」と表示させ、
19時から23時までのとき「もう寝る時間です。」と表示させよ。
解答
Dim nowh
nowh = hour(now)
if nowh <= 6 then
msgbox "おはようございます。"
elseif nowh <= 12 then
msgbox "間もなく昼御飯です。"
elseif nowh <= 18 then
msgbox "もう夕食の時間です。"
else
msgbox "もう寝る時間です。"
end if
nowh = hour(now)
if nowh <= 6 then
msgbox "おはようございます。"
elseif nowh <= 12 then
msgbox "間もなく昼御飯です。"
elseif nowh <= 18 then
msgbox "もう夕食の時間です。"
else
msgbox "もう寝る時間です。"
end if