Istruzione Continue (Visual Basic)

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

Sintassi

Continue { Do | For | While }  

Osservazioni:

È possibile trasferire dall'interno di un ciclo Do, For o While alla successiva iterazione di tale ciclo. Il controllo passa immediatamente al test della condizione del ciclo, equivalente al trasferimento all'istruzione For o While oppure all'istruzione Do o Loop che contiene la clausola Until 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 blocco Try, di un blocco Catch o di un blocco Finally, è possibile usare Continue per trasferirlo all'esterno del ciclo. Se, d'altra parte, la struttura Try...End Try è contenuta all'interno del ciclo, non è possibile utilizzare Continue per trasferire il controllo fuori dal blocco Finally, ed è possibile usarla per trasferire da un blocco Try o Catch solo se si trasferisce completamente fuori dalla struttura Try...End Try.

Se sono presenti cicli annidati dello stesso tipo, ad esempio un ciclo Do all'interno di un altro ciclo Do, un'istruzione Continue Do passa all'iterazione successiva del ciclo Do più 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 ciclo Do all'interno di un ciclo For, è 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. Continue While si trova all'interno di un ciclo For. Trasferisce all'istruzione While col < lastcol, ovvero l'iterazione successiva del ciclo While più interno che contiene il ciclo For.

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