
目次
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文は、繰り返し回数がわかっていない時でも、条件で繰り返し処理を行うことができます。
この違いを理解しておき、状況に応じて使い分けていきましょう。