カテゴリ: VB.NET 更新日: 2026/01/30

VB.NETの制御構造とは?初心者でもわかる条件分岐と繰り返しの基本を完全解説!

VB.NETの制御構造とは?初心者向けに基本をまとめて解説
VB.NETの制御構造とは?初心者向けに基本をまとめて解説

先生と生徒の会話形式で理解しよう

生徒

「先生、VB.NETでプログラムの流れを制御する方法ってありますか?」

先生

「いい質問ですね。VB.NETでは『制御構造(せいぎょこうぞう)』という仕組みを使って、プログラムの流れを自由に変えることができます。」

生徒

「制御構造って難しそうですね…。どんなものなんですか?」

先生

「大丈夫ですよ。制御構造は大きく分けて『条件分岐』と『繰り返し』の2種類しかありません。今日はこの2つの基本をゆっくり学びましょう。」

1. VB.NETの制御構造とは?

1. VB.NETの制御構造とは?
1. VB.NETの制御構造とは?

VB.NETの制御構造(control flow)とは、プログラムの実行の流れを制御する仕組みのことです。普段、私たちは「もし雨なら傘を持つ」「暑ければクーラーをつける」など、条件によって行動を変えていますよね。プログラムでも同じように、条件に応じて動きを変えたり、同じ処理を繰り返したりすることができます。

制御構造は、主に次の3つに分けられます。

  • 順次処理:上から順番に命令を実行する。
  • 分岐処理:条件によって実行する処理を変える(If文やSelect Case)。
  • 繰り返し処理:同じ処理を何度も行う(For文やWhile文)。

2. 条件分岐(If文・ElseIf文・Else文)

2. 条件分岐(If文・ElseIf文・Else文)
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

合格です!

このようにIfElseIfElseを使い分けることで、複数の条件に応じた処理を実行できます。

3. Select Case文(複数の条件を簡単に書ける)

3. Select Case文(複数の条件を簡単に書ける)
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文)

4. 繰り返し処理(For文・While文)
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. ネスト(入れ子)した制御構造

5. ネスト(入れ子)した制御構造
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の制御構造を使うコツ

6. VB.NETの制御構造を使うコツ
6. VB.NETの制御構造を使うコツ

制御構造を使うときのコツは、「プログラムの流れを日本語で考える」ことです。いきなりコードを書くのではなく、「もし○○なら」「~の間くりかえす」といった言葉で考えると理解が深まります。

  • 条件を「Yes/No」で答えられるように整理する
  • 繰り返しには「いつ終わるのか」の条件を決める
  • インデント(字下げ)をそろえて読みやすくする

こうしたポイントを意識するだけで、VB.NETの制御構造はぐっと分かりやすくなります。

まとめ

まとめ
まとめ

ここまでVB.NETにおける制御構造の基本について詳しく解説してきました。プログラムの三大要素である「順次」「分岐」「繰り返し」を理解することは、プログラミング学習における最初の大きな壁であり、同時に最も重要な土台となります。VB.NETは他のプログラミング言語に比べて、構文が自然な英語(例えば If...ThenFor...Next など)に近く、初心者の方でも直感的に流れを把握しやすいのが大きな特徴です。

条件分岐(If文やSelect Case文)を使えば、ユーザーの入力内容や計算結果に応じて柔軟に動作を変えるシステムが作れますし、繰り返し処理(For文やWhile文)を活用すれば、膨大なデータを一瞬で処理するような効率的なプログラムを作成することが可能になります。これらの構文を単体で使うだけでなく、組み合わせて「ネスト」させることで、現実世界の複雑な仕組みをコードとして表現できるようになっていきます。

現場で役立つ実践的なサンプルプログラム

学んだ内容を復習するために、少し実践的なコードを書いてみましょう。以下のサンプルは、1から10までの数字を順番にチェックし、その数字が「3の倍数かどうか」を判定して表示するプログラムです。For文とIf文、そして数値計算を組み合わせた、非常に実用的な例です。


' 1から10までのループ処理
For i As Integer = 1 To 10
    ' 3で割った余りが0なら3の倍数
    If i Mod 3 = 0 Then
        Console.WriteLine(i & " は3の倍数です。アホになります。")
    Else
        Console.WriteLine(i & " は3の倍数ではありません。")
    End If
Next

実行結果は以下のようになります。余りを求める Mod 演算子は、プログラミングの現場で「特定の周期で処理を行いたいとき」に非常によく使われるテクニックですので、あわせて覚えておくと便利ですよ。


1 は3 deは倍数ではありません。
2 は3 の倍数ではありません。
3 は3 の倍数です。アホになります。
4 は3 の倍数ではありません。
5 は3 の倍数ではありません。
6 は3 の倍数です。アホになります。
7 は3 の倍数ではありません。
8 は3 の倍数ではありません。
9 は3 の倍数です。アホになります。
10 は3 の倍数ではありません。

エラーを防ぐためのポイント

制御構造を書く際に初心者が陥りやすいミスについても触れておきます。最も注意すべきは「無限ループ」です。特に While 文を使用する際、終了条件がいつまでも満たされないコードを書いてしまうと、プログラムがフリーズしたような状態になってしまいます。

また、If 文が重なりすぎて「ネストが深くなりすぎる」のも避けたいポイントです。あまりに深くなると、後からコードを見返したときに「どのElseがどのIfに対応しているのか」がわからなくなってしまいます。そんな時は、条件を整理して Select Case に書き換えたり、処理を別のメソッドに切り出したりすることを検討してみてください。

VB.NETの学習は、まずはこの制御構造を完璧に使いこなせるようになることが近道です。最初は小さなサンプルコードを自分で書き換えて、実行結果がどう変わるかを試行錯誤してみてください。その積み重ねが、将来的に大規模なWebアプリケーションやデスクトップアプリを開発するための確かな力になります。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!If文とかFor文って、プログラミングのパズルを組み立てているみたいで面白いですね。」

先生

「そう言ってもらえると嬉しいです。実はどんなに巨大で複雑なソフトウェアも、元を辿ればこの『もし~なら』と『~を繰り返す』の組み合わせだけでできているんですよ。」

生徒

「えっ、そうなんですか!?でも、If文の中にIf文を入れる『ネスト』をやってみたら、だんだん混乱してきちゃって…。」

先生

「最初はみんなそうです。コードを書くときに『インデント(字下げ)』をしっかり意識していますか?VB.NETはVisual Studioなどの開発環境が自動で形を整えてくれますが、構造を意識して書くだけでミスはぐっと減りますよ。」

生徒

「確かに、ずれているとどこで終わるのか分からなくなりますね。あと、Select Case文はIf文よりもスッキリ書けていいなと思いました。」

先生

「いいところに気づきましたね。同じ結果になるコードでも、読みやすさを考えて書き方を選ぶのが『プロの書き方』への第一歩です。次は配列やリストを使って、大量のデータを一気にFor文で回す方法を勉強してみましょうか。」

生徒

「はい!もっと色々なことができるようになりたいので、頑張ります!」

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETで文字列をバイト配列に変換!Encodingの基本を完全解説
New2
ASP.NET
ASP.NET Coreで学ぶAPIルーティングの仕組み完全ガイド!初心者でもわかるURLの流れ
New3
VB.NET
VB.NETで文字列の空白・改行を操る!TrimやvbCrLfの使い方を徹底解説
New4
ASP.NET
ASP.NET Web APIとMVCの違いを完全解説!初心者でもわかるWebアプリとAPIの基本
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのJoinメソッドを徹底解説!バラバラの文字列を一つに結合する方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで文字列結合を高速化!StringBuilderクラスの使い方を完全ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作
No.6
Java&Spring記事人気No6
VB.NET
VB.NETで正規表現をマスター!初心者でもわかる文字列検索・抽出の基本
No.7
Java&Spring記事人気No7
VB.NET
VB.NETの文字列置換を完全解説!初心者でもわかるReplaceメソッドの使い方
No.8
Java&Spring記事人気No8
ASP.NET
ASP.NETでEF Coreを使ったデータベース接続を完全ガイド!初心者でもわかるEntity Framework Core入門