VB.NETの制御構造とは?初心者でもわかる条件分岐と繰り返しの基本を完全解説!
生徒
「先生、VB.NETでプログラムの流れを制御する方法ってありますか?」
先生
「いい質問ですね。VB.NETでは『制御構造(せいぎょこうぞう)』という仕組みを使って、プログラムの流れを自由に変えることができます。」
生徒
「制御構造って難しそうですね…。どんなものなんですか?」
先生
「大丈夫ですよ。制御構造は大きく分けて『条件分岐』と『繰り返し』の2種類しかありません。今日はこの2つの基本をゆっくり学びましょう。」
1. VB.NETの制御構造とは?
VB.NETの制御構造(control flow)とは、プログラムの実行の流れを制御する仕組みのことです。普段、私たちは「もし雨なら傘を持つ」「暑ければクーラーをつける」など、条件によって行動を変えていますよね。プログラムでも同じように、条件に応じて動きを変えたり、同じ処理を繰り返したりすることができます。
制御構造は、主に次の3つに分けられます。
- 順次処理:上から順番に命令を実行する。
- 分岐処理:条件によって実行する処理を変える(
If文やSelect Case)。 - 繰り返し処理:同じ処理を何度も行う(
For文やWhile文)。
2. 条件分岐(If文・ElseIf文・Else文)
まずはVB.NETのIf文を使った条件分岐を見てみましょう。条件分岐とは、「もし〇〇なら△△する」というように、条件によって処理を変える構文(こうぶん)のことです。
たとえば「点数が60点以上なら合格、そうでなければ不合格」といった処理を作ることができます。
Dim score As Integer = 75
If score >= 60 Then
Console.WriteLine("合格です!")
Else
Console.WriteLine("不合格です…")
End If
上の例では、変数scoreが60以上なら「合格です!」と表示し、それ以外なら「不合格です…」と表示します。
合格です!
ElseIfを使うと、条件をさらに細かく分けることができます。
Dim score As Integer = 85
If score >= 90 Then
Console.WriteLine("とてもよくできました!")
ElseIf score >= 60 Then
Console.WriteLine("合格です!")
Else
Console.WriteLine("不合格です…")
End If
合格です!
このようにIf、ElseIf、Elseを使い分けることで、複数の条件に応じた処理を実行できます。
3. Select Case文(複数の条件を簡単に書ける)
もし条件がたくさんある場合、Ifを何度も書くと読みづらくなります。そんなときに便利なのがSelect Case文です。
たとえば、点数に応じて評価を表示するプログラムは次のように書けます。
Dim score As Integer = 80
Select Case score
Case Is >= 90
Console.WriteLine("Aランク")
Case Is >= 70
Console.WriteLine("Bランク")
Case Is >= 50
Console.WriteLine("Cランク")
Case Else
Console.WriteLine("Dランク")
End Select
Bランク
Select Caseは「条件が多いとき」にとても読みやすくなるので、VB.NETでよく使われる構文です。
4. 繰り返し処理(For文・While文)
次に、同じ処理を何度も繰り返す繰り返し処理について学びましょう。例えば、「1から5までの数字を順番に表示したい」ときに使えます。
4-1. For文の基本
For文は「決まった回数だけ繰り返す」ときに使います。
For i As Integer = 1 To 5
Console.WriteLine(i)
Next
1
2
3
4
5
For i As Integer = 1 To 5は、「変数iを1から5まで1ずつ増やしながら繰り返す」という意味です。
4-2. While文の基本
While文は、「条件が真(True)の間、ずっと繰り返す」構文です。回数が決まっていないときに使います。
Dim i As Integer = 1
While i <= 3
Console.WriteLine("こんにちは!")
i += 1
End While
こんにちは!
こんにちは!
こんにちは!
i += 1は「iに1を足す」という意味です。これをしないと、永遠に繰り返してしまうので注意しましょう。
5. ネスト(入れ子)した制御構造
VB.NETでは、制御構造の中にさらに制御構造を書くこともできます。これを「ネスト」と呼びます。例えば、For文の中にIf文を入れて、偶数だけを表示することも可能です。
For i As Integer = 1 To 5
If i Mod 2 = 0 Then
Console.WriteLine(i & " は偶数です")
End If
Next
2 は偶数です
4 は偶数です
このように、条件分岐と繰り返しを組み合わせることで、より複雑な処理をシンプルに書くことができます。
6. VB.NETの制御構造を使うコツ
制御構造を使うときのコツは、「プログラムの流れを日本語で考える」ことです。いきなりコードを書くのではなく、「もし○○なら」「~の間くりかえす」といった言葉で考えると理解が深まります。
- 条件を「Yes/No」で答えられるように整理する
- 繰り返しには「いつ終わるのか」の条件を決める
- インデント(字下げ)をそろえて読みやすくする
こうしたポイントを意識するだけで、VB.NETの制御構造はぐっと分かりやすくなります。