VB.NET 繰り返し処理 Do-Loop文

VB.NETにおける繰り返し処理について様々なパターンがあるので、紹介していきます。
For文は以前紹介したので、今回はDo-Loop文処理を見ていきましょう。

Do-Loop文

Do文は無限にループさせることができます。
DoとLoopの間に書かれた処理を永遠と繰り返します。
あまり使うことはないと思いますが、使用する時は気を付けてくださいね。

Do
    Console.WriteLine("無限ループ")
Loop

 

Do While-Loop文

Do While-Loopは、条件を満たしている間、処理を繰り返します。
繰り返しの回数がわからない時などに利用できます。

Do While 条件
  処理
Loop

使用例を記載します。
変数aが4未満の時はループするという意味の処理です。

Dim a As Integer = 0
Do While a < 4
    Console.WriteLine(a.ToString)
    a = a + 1
Loop

結果
0
1
2
3

Do Until-Loop文

Do Until-Loopは、Do Whileの逆で、条件を満たさない間、処理を繰り返します。

Do Until 条件
  処理
Loop

使用例を記載します。
変数a=4になるまで処理を繰り返すという意味の処理です。

Dim a As Integer = 0
Do Until a = 4
    Console.WriteLine(a.ToString)
    a = a + 1
Loop

結果
0
1
2
3

Continue Do と Exit Do

ループをしている際に、途中で次のループに処理を飛ばしたい時や、ループを強制終了させたい時があると思います。
そんな時に使用するのが、「Continue Do」 と 「Exit Do」です。

Continue Doは、Do-Loop処理の中で、次のループに処理を飛ばすことができます。
Exit Doは、Do-Loop処理の中で、ループを強制的に終了させることができます。

例を見ていきます。

Dim a As Integer = 0
Do Until a = 4

    If a = 1 Then
        a = a + 1
        Continue Do
    End If

    If a = 3 Then
        Exit Do
    End If

    Console.WriteLine(a.ToString)
    a = a + 1
Loop

解説
6行目:a=1の時に次のループに処理を飛ばすことができます。
この時に5行目の a=a+1 の処理が抜けていると、aの値がずっと1のままなので、無限ループすることになります。

10行目:a=3の時に、ループを強瀬終了することができます。

結果
0
2

このように「Continue Do」「Exit Do」を使えるようになると、幅が広がるので、理解しておきましょう。

Do-Loop While Do-Loop Until

最後に、Do-Loop WhileとDo-Loop Untilという書き方を紹介しておきます。
あまり変わりませんが、条件を判定する場所が最後になるという特徴があります。

例を見ていきましょう。

Dim a As Integer = 0
Do Until a = 0
    Console.WriteLine(a.ToString)
Loop

結果は何もなし

Dim a As Integer = 0
Do
    Console.WriteLine(a.ToString)
Loop Until a = 0

結果
0

すぐ処理が終わる条件なのですが、Do Until-Loopの時は最初にループ判定をするので、処理を通らずに終わります。
Do-Loop Untilは、最後にループ判定をするので、最初の1回は必ず処理を通ります。

Do-Loop Whileも全く同じように最後に判定するので、最初の1回は必ず処理を通ります。
このような書き方もできます。

 

まとめ

For文とDo-Loop文には下記のような違いがあるので、状況によって使い分けてください。
For文は、繰り返しの回数がわかっている時に使います。
Do-Loop文は、繰り返し回数がわかっていない時でも、条件で繰り返し処理を行うことができます。

この違いを理解しておき、状況に応じて使い分けていきましょう。

 

VB.NETの記事一覧

おすすめの記事