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を使う
このルールを意識することで、バグの少ない読みやすいプログラムを書けるようになります。
まとめ
VB.NETにおける条件分岐の基本であり、最も重要な要素の一つである「If-ElseIf-Else構文」について解説してきました。プログラミングの学習を進める中で、一つの道筋だけでなく、状況に応じて処理を分ける「判断能力」をコードに持たせることは、アプリケーション開発の第一歩と言えます。
今回の内容をおさらいすると、まず基本となるIfで最初の条件を提示し、それに当てはまらなかった場合の予備条件としてElseIfを重ねていきます。そして、どの条件にも合致しなかった際の「受け皿」としてElseを記述するというのが王道のパターンです。この流れをしっかりとマスターすることで、複雑な業務ロジックや、ユーザーの入力ミスに対するエラーハンドリングなど、実戦で役立つスキルが身につきます。
実践的な活用例:複雑な数値判定
記事の中では点数や年齢を例に挙げましたが、実際の開発現場では、もっと細かい数値のセグメント分けが必要になるシーンが多々あります。例えば、在庫管理システムにおいて、商品の在庫数に応じて表示する警告レベルを分けるといったケースです。以下のコードを見て、これまでの復習をしてみましょう。
Dim stockCount As Integer = 5
If stockCount = 0 Then
Console.WriteLine("【在庫切れ】至急発注してください。")
ElseIf stockCount <= 10 Then
Console.WriteLine("【在庫僅少】注文を検討してください。残数:" & stockCount)
ElseIf stockCount <= 50 Then
Console.WriteLine("【在庫あり】通常販売中です。")
Else
Console.WriteLine("【在庫豊富】余裕があります。")
End If
このように記述することで、単に「あるかないか」だけでなく、具体的な数量に基づいた柔軟な対応が可能になります。Console.WriteLineの部分を、実際のシステムでは「メール通知を送る」や「画面の文字の色を赤くする」といった具体的なアクションに置き換えるだけで、立派なビジネスプログラムへと進化します。
コードを綺麗に保つための秘訣
条件分岐を書く際には、「可読性」と「メンテナンス性」を常に意識することが大切です。ElseIfが10個も20個も並んでしまうような場合は、他の構文(例えばSelect Caseなど)を検討するタイミングかもしれません。しかし、数個程度の分岐であれば、今回学んだIf-ElseIf-Elseが最も直感的で分かりやすい手段です。
また、初心者が陥りがちなミスとして、条件の重複があります。If score > 80 と書いた後に ElseIf score > 70 と書く場合、80より大きい値はすでに最初のIfでキャッチされているため、二番目のElseIfには「71から80まで」の数値しか入ってきません。この「条件のフィルタリング」の仕組みを視覚的にイメージできるようになると、プログラミング脳が一段階レベルアップします。
最後に:トライ&エラーを楽しもう
VB.NETは、構文が自然言語(英語)に近く、非常に読みやすい言語です。今回学んだ構文も、「もし(If)〜なら、あるいは(ElseIf)〜なら、そうでなければ(Else)〜」と、日本語の文章を組み立てるような感覚で書くことができます。まずは自分で色々な数値を変数に代入してみて、期待通りの出力結果になるか何度も試してみてください。その小さな積み重ねが、将来的に大きなシステムを構築するための揺るぎない基礎となります。
条件分岐が自由自在に操れるようになれば、次は「繰り返し処理(Loop)」などと組み合わせて、さらに高度なプログラムに挑戦していきましょう!
生徒
「先生、ありがとうございました!If-ElseIf-Elseの流れがやっと掴めてきました。条件を書く順番が大事だっていうのが、一番の驚きでした。」
先生
「それは良かったです!特に『厳しい条件から先に書く』というルールを忘れると、意図しない動き(バグ)の原因になりますからね。実際にコードを書いてみて、何か気になったところはありましたか?」
生徒
「はい、例えばElseIfって何個まで繋げていいんですか?無限に書けちゃう気がして……。」
先生
「技術的にはかなりの数を繋げられますが、あまりに多すぎると後から読み返した時に混乱してしまいます。目安としては3つから5つくらいまでですね。それ以上になるなら、処理を分割するか、別の書き方を検討するのがプロのコツですよ。」
生徒
「なるほど、読みやすさも大事なんですね。あと、最後のElseは必ず書かないといけないんですか?」
先生
「必須ではありません。でも、想定外のデータが入ってきた時に『何もしない』よりは、『エラーです』とか『該当なし』と表示させるためにElseを置いておく方が、親切で安全なプログラムと言えますね。」
生徒
「確かに、何も起きないと壊れたのかな?って不安になりますもんね。条件の優先順位と、最後の受け皿としてのElse、しっかり意識して使ってみます!」
先生
「その意気です!では、試しに今の知識を使って『おみくじプログラム』を作ってみるのはどうでしょう?乱数で数字を出して、その数字によって大吉や中吉を表示分けるんです。」
生徒
「あ、それ楽しそう!早速やってみます!もし大吉の範囲を狭くしたいなら、一番最初のIfに書けばいいんですよね?」
先生
「正解です!飲み込みが早いですね。ぜひチャレンジしてみてください。」