Continue ステートメント (Visual Basic)

ループの次の反復に直ちに制御を移します。

構文

Continue { Do | For | While }  

Remarks

DoFor、または While ループ内から、そのループの次の反復に移すことができます。 制御はすぐにループ条件テストに渡されます。これは、For または While ステートメントに移ったり、Until または While 句が含まれている Do または Loop ステートメントに移ったりするのと同じです。

Continue は、移動を許可するループ内の任意の場所で使用できます。 制御の移動を許可するルールは、GoTo ステートメントを使用する場合と同じです。

たとえば、ループが Try ブロック、Catch ブロック、または Finally ブロック内に完全に含まれている場合は、Continue を使用してループから移動できます。 一方、Try...End Try 構造体がループ内に含まれている場合は、Continue を使用して Finally ブロックから制御を移すことはできません。これを使用して Try または Catch ブロックから移すことができるのは、Try...End Try 構造体から完全に移す場合のみです。

同じ種類のループが入れ子になっている場合 (別の Do ループ内の Do ループなど)、Continue Do ステートメントは、それが含まれている最も内側の Do ループの次の反復にスキップします。 Continue を使用して、同じ種類の含まれているループの次の反復にスキップすることはできません。

さまざまな種類のループが入れ子になっている場合 (For ループ内の Do ループなど)、Continue Do または Continue For のいずれかを使用して、いずれかのループの次の反復にスキップできます。

次のコード例では、除数が 0 の場合に、Continue While ステートメントを使用して配列の次の列にスキップします。 Continue WhileFor ループ内にあります。 これにより While col < lastcol ステートメントに移動します。これは、For ループが含まれている最も内側の While ループの次の反復です。

Dim row, col As Integer
Dim lastrow As Integer = 6
Dim lastcol As Integer = 10
Dim a(,) As Double = New Double(lastrow, lastcol) {}
Dim b(7) As Double
row = -1
While row < lastrow
    row += 1
    col = -1
    While col < lastcol
        col += 1
        a(row, col) = 0
        For i As Integer = 0 To b.GetUpperBound(0)
            If b(i) = col Then
                Continue While
            Else
                a(row, col) += (row + b(i)) / (col - b(i))
            End If
        Next i
    End While
End While

関連項目