制御をループの次の反復に直ちに転送します。
構文
Continue { Do | For | While }
注釈
Do
、For
、またはWhile
ループ内から、そのループの次のイテレーションに転送できます。 制御はループ条件テストに直ちに渡されます。これは、For
またはWhile
ステートメント、またはUntil
またはWhile
句を含むDo
またはLoop
ステートメントに転送することと同じです。
Continue
は、転送を許可するループ内の任意の場所で使用できます。 制御の転送を許可する規則は、 GoTo ステートメントと同じです。
たとえば、ループが Try
ブロック、 Catch
ブロック、または Finally
ブロック内に完全に含まれている場合は、 Continue
を使用してループから転送できます。 一方、Try
...End Try
構造体がループ内に含まれている場合、Continue
を使用してFinally
ブロックから制御を転送することはできません。また、Try
...End Try
構造体から完全に転送する場合にのみ、Try
またはCatch
ブロックから転送できます。
同じ型の入れ子になったループ (別のDo
ループ内のDo
ループなど) がある場合、Continue Do
ステートメントは、それを含む最も内側のDo
ループの次の反復にスキップします。
Continue
を使用して、同じ型の包含ループの次のイテレーションにスキップすることはできません。
異なる型の入れ子になったループ (たとえば、For
ループ内のDo
ループ) がある場合は、Continue Do
またはContinue For
を使用して、いずれかのループの次の反復にスキップできます。
例
次のコード例では、除数が 0 の場合、 Continue While
ステートメントを使用して配列の次の列にスキップします。
Continue While
は、For
ループ内にあります。
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
こちらも参照ください
.NET