Istruzione Continue (Visual Basic)

Trasferisce immediatamente il controllo all'iterazione successiva di un ciclo.

Sintassi

Continue { Do | For | While }  

Osservazioni

È possibile trasferire da all'interno di un Dociclo , Foro While all'iterazione successiva di tale ciclo. Il controllo passa immediatamente al test della condizione del ciclo, equivalente al trasferimento all'istruzione o While all'istruzione ForDo o Loop che contiene la Until clausola o While .

È possibile usare Continue in qualsiasi posizione del ciclo che consenta i trasferimenti. Le regole che consentono il trasferimento del controllo sono le stesse dell'istruzione GoTo.

Ad esempio, se un ciclo è totalmente contenuto all'interno di un Try blocco, di un Catch blocco o di un Finally blocco, è possibile usare Continue per trasferire fuori dal ciclo. Se, d'altra parte, la Trystruttura ...End Try è contenuta all'interno del ciclo, non è possibile utilizzare Continue per trasferire il controllo fuori dal Finally blocco, ed è possibile usarla per trasferire fuori da un Try blocco o Catch solo se si trasferisce completamente fuori dalla Trystruttura ... .End Try

Se sono presenti cicli annidati dello stesso tipo, ad esempio un Do ciclo all'interno di un altro Do ciclo, un'istruzione Continue Do passa all'iterazione successiva del ciclo più Do interno che lo contiene. Non è possibile usare Continue per passare all'iterazione successiva di un ciclo contenitore dello stesso tipo.

Se sono presenti cicli annidati di tipi diversi, ad esempio un Do ciclo all'interno di un For ciclo, è possibile passare all'iterazione successiva di entrambi i cicli usando Continue Do o Continue For.

Esempio

Nell'esempio di codice seguente viene usata l'istruzione Continue While per passare alla colonna successiva di una matrice se un divisore è zero. l'oggetto Continue While si trova all'interno di un For ciclo. Trasferisce all'istruzione , ovvero l'iterazione While col < lastcol successiva del ciclo più While interno che contiene il For ciclo .

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

Vedi anche