Continue ステートメント (Visual Basic)
制御をループの次の反復処理に直ちに移します。
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 を使用することによって、どちらのループの次の反復処理にもスキップできます。
使用例
次のコード例は Continue While ステートメントを使用して、除数が 0 の場合に配列の次の列にスキップします。 Continue While は For ループの内部にあります。 制御は For ループを含む内側の While ループの次の反復処理である While col < lastcol ステートメントに移ります。
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
参照
関連項目
Do...Loop ステートメント (Visual Basic)
For...Next ステートメント (Visual Basic)