zukucode
主にWEB関連の情報を技術メモとして発信しています。

VB.NET 2重のForループを一気に抜ける方法

VB.NETで2重のFor文の一番深い箇所でExit Forコマンドを実行しても自身のFor文しか抜けることができません。

子ループをExit Forで抜ける前にBreakフラグなどを立てておいて、親ループではBreakフラグが立っていた場合はExit Forで抜けるような方法は処理が少し複雑になってしまいます。

以下のようにDoループでネストしておけば、Exit Doコマンドで一気にFor文を抜けることができます。

Do
    For i As Integer = 0 To 10
        For j As Integer = 0 To 10
            If foo = bar Then
                'Forループを一気に抜ける
                Exit Do
            End If
        Next
    Next
    'Doループは1回のみ行う
    Exit Do
Loop

可読性の観点ではBreakフラグのような方法のほうが直感的かもしれませんが、変数を宣言したり余計なステップがなくなる分不具合も減るので慣れてしまえばDoループの方法でもいいと思います。


関連記事