方法: ループの次の反復処理にスキップする (Visual Basic)

Do ループ、For ループ、または While ループの現在の反復処理を完了している場合、Continue ステートメント (Visual Basic) を使用して、次の反復処理にすぐにスキップできます。

次の反復処理へのスキップ

For...Next ループの次の反復処理へスキップするには

  1. 通常の方法で、For...Next ループを記述します。

  2. 現在の反復処理を終了し、次の反復処理をすぐに続行する場所で、Continue For を使用します。

    Public Function findLargestRatio(ByVal high() As Double, 
        ByVal low() As Double) As Double
        Dim ratio As Double
        Dim largestRatio As Double = Double.MinValue
        For counter As Integer = 0 To low.GetUpperBound(0)
            If Math.Abs(low(counter)) < 
               System.Double.Epsilon Then Continue For 
            ratio = high(counter) / low(counter)
            If Double.IsInfinity(ratio) OrElse 
               Double.IsNaN(ratio) Then Continue For 
            If ratio > largestRatio Then largestRatio = ratio
        Next counter
        Return largestRatio
    End Function
    

入れ子になったループ内からのスキップ

互いに入れ子になっている Do ループ、For ループまたは While ループがある場合、次の反復処理が入れ子内のどのレベルにあっても、そこにすぐにスキップできます。 しかし、これはループが異なる種類である場合だけです。 たとえば、入れ子になった While ループなど、同じ種類のループの入れ子になっている場合は、Continue While によって、最も内側の While ループの次の反復処理にスキップします。

入れ子になった For ループ内から、Do ループの次の反復処理にスキップするには

  1. 通常の方法で、入れ子になったループを記述します。

  2. 内部 For ループの現在の反復処理を終了する場所で Continue Do を使用し、外側の Do ループの次の反復処理にスキップします。

    Public Sub divideElements(ByRef matrix(,) As Double)
        Dim i As Integer = -1
        Do Until i > matrix.GetUpperBound(0)
            i += 1
            For j As Integer = 0 To matrix.GetUpperBound(1)
                If matrix(j, j) = 0 Then Continue Do 
                matrix(i, j) /= matrix(j, j)
            Next j
        Loop 
    End Sub
    

参照

処理手順

方法: 制御構造から制御を移す (Visual Basic)

方法: 複数のステートメントを繰り返し実行する (Visual Basic)

方法: コレクションまたは配列で、各要素の複数のステートメントを実行する (Visual Basic)

方法: ループのパフォーマンスを改善する (Visual Basic)

参照

While...End While ステートメント (Visual Basic)

Do...Loop ステートメント (Visual Basic)

For...Next ステートメント (Visual Basic)

概念

ループ構造 (Visual Basic)

入れ子になった制御構造 (Visual Basic)

その他の技術情報

Visual Basic における制御フロー