VB.NETのIf-ElseIf-Else構文を徹底解説!初心者でもわかる複数条件の使い方
生徒
「先生、VB.NETで条件がいくつもある場合ってどうすればいいですか?」
先生
「とても良い質問ですね。そんなときはIf-ElseIf-Else構文を使うと便利です。」
生徒
「If文だけじゃ足りないんですか?」
先生
「そうなんです。条件が一つだけならIf文でいいですが、条件が複数になるとElseIfやElseを組み合わせて使います。今日はそれをわかりやすく学びましょう。」
1. If-ElseIf-Else構文とは?
VB.NETのIf-ElseIf-Else構文は、条件を複数チェックして、それぞれに応じた処理を実行するための分岐構造です。たとえば、テストの点数によって「合格」「再試験」「不合格」といったメッセージを出したいときなどに使われます。
プログラムでは、最初のIf条件が真(True)かどうかを判断します。真であればそのブロック内の処理を実行し、それ以降の条件はスキップされます。偽(False)の場合は次のElseIfに進みます。すべての条件が偽の場合、最後のElse部分が実行されます。
2. 基本的なIf-ElseIf-Else構文の書き方
まずは構文の形を見てみましょう。
If 条件1 Then
' 条件1がTrueのときの処理
ElseIf 条件2 Then
' 条件2がTrueのときの処理
Else
' どの条件にも当てはまらないときの処理
End If
とてもシンプルですよね。では、実際に使ってみましょう。
3. 具体的な例:テストの点数で判定する
例えば、生徒のテスト点数によって判定を出すプログラムを作りたいとします。点数が80点以上なら「合格」、50点以上80点未満なら「再試験」、それ以下なら「不合格」と表示するようにしましょう。
Dim score As Integer = 72
If score >= 80 Then
Console.WriteLine("合格です!")
ElseIf score >= 50 Then
Console.WriteLine("再試験です。もう少し頑張りましょう。")
Else
Console.WriteLine("不合格です。次はきっと大丈夫!")
End If
再試験です。もう少し頑張りましょう。
このように、上から順番に条件を評価していき、最初にTrueになった部分だけが実行されます。残りの条件はスキップされる点が重要です。
4. ElseIfを使うときの注意点
ElseIfをいくつも書くことができますが、処理の順番には注意が必要です。上の条件が広すぎると、下の条件が無視されてしまうことがあります。
たとえば次のように書くと、100点の人でも「再試験」と表示されてしまうミスが起こるかもしれません。
Dim score As Integer = 100
If score >= 50 Then
Console.WriteLine("再試験です。")
ElseIf score >= 80 Then
Console.WriteLine("合格です!")
End If
再試験です。
これは「score >= 50」の条件が最初に真(True)になったため、後のElseIfには進まなかったのです。条件は「より厳しいものから順に」書くのがポイントです。
5. Elseを使ってすべての条件に当てはまらない場合をカバー
もし、どのIfやElseIfにも当てはまらない場合に備えて、Elseを最後に書いておくと安心です。これがあると、予想外のデータが来た場合でもプログラムが止まらず、メッセージを表示できます。
Dim age As Integer = 150
If age < 13 Then
Console.WriteLine("子どもです。")
ElseIf age < 20 Then
Console.WriteLine("未成年です。")
ElseIf age <= 120 Then
Console.WriteLine("大人です。")
Else
Console.WriteLine("入力された年齢が正しくありません。")
End If
入力された年齢が正しくありません。
このようにElseを使うと、どの条件にも当てはまらないデータにも対応でき、より安全なプログラムになります。
6. If-ElseIf-Else構文の使いどころ
この構文は、たとえば以下のような場面でよく使われます。
- ユーザーの入力値に応じて処理を変えたいとき
- ゲームの得点やレベルでメッセージを変えるとき
- 天気や時間によって動作を分けるとき
もし「朝ならおはよう」「昼ならこんにちは」「夜ならこんばんは」といったメッセージを出したいときも、If-ElseIf-Elseを使えば簡単に実現できます。
Dim hour As Integer = 19
If hour < 12 Then
Console.WriteLine("おはようございます!")
ElseIf hour < 18 Then
Console.WriteLine("こんにちは!")
Else
Console.WriteLine("こんばんは!")
End If
こんばんは!
このように、If-ElseIf-Elseを使えば、プログラムに「判断力」を持たせることができます。
7. 条件分岐のコツとポイント
複数条件を扱うときに覚えておくと便利なポイントを紹介します。
- 条件は上から順番に評価される
- 最初にTrueになった部分で処理が止まる
- 条件は範囲が狭いものを上に書く
- どの条件にも当てはまらないときのために
Elseを使う
このルールを意識することで、バグの少ない読みやすいプログラムを書けるようになります。