VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
生徒
「VB.NETで条件によって分岐する方法ってありますか?」
先生
「VB.NETでは、If文を使って、簡単に条件分岐を実現することができます。」
生徒
「条件分岐って、具体的にはどうやって使うんですか?」
先生
「それでは、If文の基本から一緒に見ていきましょう!」
1. If文とは?
VB.NETのIf文は、ある条件に応じてプログラムの動きを変えるための制御構造のひとつです。たとえば、「もし点数が60点以上なら合格、そうでなければ不合格」といった判断を行うことができます。こうした処理を条件分岐と呼びます。
条件分岐を理解することで、プログラムがただ順番に動くだけでなく、「状況に応じて違う結果を出す」ように作れるようになります。
2. If文の基本構文
VB.NETのIf文の基本構文は次のようになります。
If 条件 Then
処理
End If
このIf文は「もし(If)条件がTrue(真)なら、Then以下の処理を実行する」という意味になります。条件がFalse(偽)の場合は、処理は実行されません。
例えば、「変数aが3なら“OK”と表示する」というプログラムはこう書けます。
Dim a As Integer = 3
If a = 3 Then
Console.WriteLine("OK!")
End If
OK!
このように、条件が成り立つ(True)ときだけ処理が行われます。
3. If〜Else構文(条件がFalseのときの処理)
「もし条件が成り立たなかったときにも別の処理をしたい」という場合は、Elseを使います。Elseとは「それ以外なら」という意味です。
Dim score As Integer = 50
If score >= 60 Then
Console.WriteLine("合格です!")
Else
Console.WriteLine("不合格です…")
End If
不合格です…
このように、If文では条件が真(True)のときだけでなく、偽(False)のときにも分岐させることができます。
4. ElseIf構文(条件を複数指定する)
「点数が90点以上ならA判定、70点以上ならB判定、60点以上ならC判定、それ以下は不合格」といったように、複数の条件を分けたい場合は、ElseIfを使います。
Dim score As Integer = 85
If score >= 90 Then
Console.WriteLine("A判定")
ElseIf score >= 70 Then
Console.WriteLine("B判定")
ElseIf score >= 60 Then
Console.WriteLine("C判定")
Else
Console.WriteLine("不合格です")
End If
B判定
ElseIfを使うことで、条件を順番にチェックして、最初に当てはまったものだけを実行します。
5. 条件式の書き方(比較演算子と論理演算子)
条件式は、数字や文字を比較したり、複数の条件を組み合わせるために使います。ここでは、代表的な演算子(えんざんし)を紹介します。
5-1. 比較演算子
比較演算子とは、「=」「>」「<」などを使って、値を比べるための記号です。
=:等しい<>:等しくない>:より大きい<:より小さい>=:以上<=:以下
たとえば「もし年齢が18歳以上なら大人」とする場合は次のように書けます。
Dim age As Integer = 20
If age >= 18 Then
Console.WriteLine("大人です")
End If
大人です
5-2. 論理演算子
論理演算子とは、複数の条件を組み合わせるためのものです。よく使うのは以下の2つです。
And:両方の条件がTrueのときTrueOr:どちらか一方がTrueのときTrue
Dim age As Integer = 25
Dim hasLicense As Boolean = True
If age >= 18 And hasLicense = True Then
Console.WriteLine("車を運転できます")
End If
車を運転できます
このように、論理演算子を使うと「条件を組み合わせて判断する」ことができます。
6. If文の入れ子(ネスト)
VB.NETでは、If文の中にさらにIf文を書くこともできます。これを入れ子(ネスト)と呼びます。たとえば、「点数が60点以上で、なおかつ80点以上なら優秀」といったように、条件をさらに細かく設定できます。
Dim score As Integer = 85
If score >= 60 Then
Console.WriteLine("合格です")
If score >= 80 Then
Console.WriteLine("とてもよくできました!")
End If
End If
合格です
とてもよくできました!
このように、If文を入れ子にすることで、条件をより細かく制御できます。
7. If文を使うときのポイント
If文を使うときに気をつけたいポイントをいくつか紹介します。
- インデント(字下げ)を整える: 見やすくするためにIf文の中はスペースを入れて揃えましょう。
- 条件を明確にする: TrueかFalseではっきり判断できるように書きましょう。
- ElseIfの順番に注意: 条件が上から順番に評価されるので、範囲が広い条件を下に書くと正しく動作します。
- 変数の型を意識する: 数値・文字列・論理型(True/False)など、型が違うと比較できないことがあります。
こうした基本を守ることで、VB.NETのIf文を使ったプログラムが読みやすく、エラーも少なくなります。
まとめ
VB.NETのIf文について、基本構文から応用まで学びました。If文は条件分岐を実現するための重要な制御構造で、状況に応じてプログラムの処理を変えることができます。基本のIf文、If〜Else、ElseIfを組み合わせることで、複数の条件を整理して処理することが可能です。また、比較演算子や論理演算子を使うことで、数値や文字列、論理値を組み合わせた複雑な条件も簡単に評価できます。入れ子(ネスト)を使えば、さらに細かい条件分岐や複雑なロジックを作ることができます。
If文を使う際のポイントとして、まずインデントを整えて読みやすくすること、条件を明確に書くこと、ElseIfの順番に注意すること、そして変数の型を正しく意識することが挙げられます。これらを守ることで、VB.NET初心者でも安全に、そして効率的に条件分岐を扱えるようになります。If文は、点数判定や年齢チェック、ユーザー入力の条件分岐など、日常的なプログラムでも頻繁に登場する基本的な構文です。
サンプルプログラムで振り返り
Dim score As Integer = 75
Dim age As Integer = 20
Dim hasTicket As Boolean = True
If score >= 90 Then
Console.WriteLine("成績:A")
ElseIf score >= 70 Then
Console.WriteLine("成績:B")
ElseIf score >= 60 Then
Console.WriteLine("成績:C")
Else
Console.WriteLine("不合格")
End If
If age >= 18 And hasTicket Then
Console.WriteLine("入場可能")
Else
Console.WriteLine("入場不可")
End If
成績:B
入場可能
この例では、ElseIfで複数の点数判定を行い、論理演算子Andで年齢とチケットの両方を確認しています。条件に応じた処理が正しく分岐して出力されることがわかります。
生徒
「If文を使うと、条件に応じて処理を変えられるんですね。ElseIfや論理演算子も組み合わせるとすごく柔軟にできますね。」
先生
「その通りです。複数の条件を順番に判定したい場合や、複雑な条件をチェックしたい場合にElseIfやAnd、Orを使うと便利です。」
生徒
「入れ子にすると、さらに細かい条件分岐も作れるんですね。ネストが深くなっても、インデントを整えれば見やすいですね。」
先生
「そうです。入れ子を使うと条件の階層を整理でき、プログラムの意図が明確になります。初心者でもインデントと型を意識して書くと、エラーも少なく、安全にIf文を活用できます。」
生徒
「条件分岐を正しく使えば、点数判定や年齢チェック、ユーザー入力の確認など、いろいろな場面で応用できますね。」
先生
「その通りです。If文はVB.NETプログラミングの基本中の基本ですので、しっかり理解して使いこなせるようになることが大切です。」