VB.netのFor文を使用して2重のループ処理を行う際に、
内側のループで処理をスキップしたり途中で一気に抜ける方法について解説します。
Exit-Do文で2重ループから一気に抜ける
VB.netのFor文を使用して2重のループ処理を行う際に、途中で一気に抜ける方法について解説します。
この場合、Exit Do文を使用してループ全体を抜け出します。
Do
    For i As Integer = 1 To 5
        Console.WriteLine($"外側ループ: {i}")
        For j As Integer = 1 To 3
            If j = 2 Then
                Exit Do
            End If
            Console.WriteLine($"  内側ループ: {j}")
        Next
    Next
Loop While False
上記の例では、内側のループでjが2の場合、Exit Do文を使用してDoループ全体を抜け出します。
この方法を利用することで、2重のループを一気に終了させることができます。
フラグで2重ループから抜ける
内側のループで特定の条件が満たされた場合に、
外側のループも含めて一気に抜けるには、フラグ変数を使用して制御します。
Dim exitLoop As Boolean = False
For i As Integer = 1 To 5
    Console.WriteLine($"外側ループ: {i}")
    For j As Integer = 1 To 3
        If j = 2 Then
            exitLoop = True
            Exit For
        End If
        Console.WriteLine($"  内側ループ: {j}")
    Next
    If exitLoop Then
        Exit For
    End If
Next
上記の例では、内側のループでjが2の場合、exitLoopフラグをTrueに設定し、
外側のループに入る前にその条件を確認して一気に抜けるようにしています。
広告
2重for文で内側の処理をスキップする
内側のループで特定の条件が満たされた場合に、
その回だけ処理をスキップするには、Continueステートメントを使用します。
For i As Integer = 1 To 5
    Console.WriteLine($"外側ループ: {i}")
    For j As Integer = 1 To 3
        If j = 2 Then
            Continue For
        End If
        Console.WriteLine($"  内側ループ: {j}")
    Next
Next
上記の例では、内側のループでjが2の場合、Continue Forが実行され、
その回だけ内側の処理がスキップされます。
広告
2重for文で内側の処理を途中で抜ける
内側のループで特定の条件が満たされた場合に、途中で抜けるには、
Exitステートメントを使用します。
For i As Integer = 1 To 5
    Console.WriteLine($"外側ループ: {i}")
    For j As Integer = 1 To 3
        If j = 2 Then
            Exit For
        End If
        Console.WriteLine($"  内側ループ: {j}")
    Next
Next
上記の例では、内側のループでjが2の場合、Exit Forが実行され、
外側のループも含めて処理が終了します。
まとめ
VB.netのFor文を使用した2重のループ処理において、
内側のループで特定の条件に応じて処理をスキップしたり途中で抜けることができます。
これらの制御を利用することで、柔軟かつ効果的なプログラミングが可能です。

![[VB.net]2重のfor文からExitで一気に抜ける!continueについても](https://kamitukablog.com/HP/wp-content/uploads/2024/01/アイキャッチ-16.png)