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 Do
ciclo , For
o 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 For
Do
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 Try
struttura ...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 Try
struttura ... .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