次の方法で共有


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

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

構文

Continue { Do | For | While }  

注釈

DoFor、または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

こちらも参照ください