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