Istruzione Continue (Visual Basic)
Trasferisce immediatamente il controllo all'iterazione successiva del ciclo.
Continue { Do | For | While }
Note
È possibile trasferire il controllo dall'interno di un ciclo Do, For o While all'iterazione successiva del ciclo. Il controllo passa immediatamente alla verifica della condizione del ciclo, ossia viene trasferito all'istruzione For o While oppure all'istruzione Do o Loop che contiene la clausola Until o While.
È possibile utilizzare Continue in qualsiasi punto del ciclo in cui è consentito il trasferimento del controllo. Le regole che consentono il trasferimento del controllo corrispondono a quelle di Istruzione GoTo.
Se, ad esempio, un ciclo è contenuto completamente all'interno di un blocco Try, di un blocco Catch o di un blocco Finally, è possibile utilizzare Continue per uscire dal ciclo. Se, invece, la struttura Try...End Try è contenuta all'interno del ciclo, non è possibile utilizzare Continue per trasferire il controllo all'esterno del blocco Finally ed è possibile utilizzarlo per uscire da un blocco Try o Catch solo se si esce completamente 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 la contiene. Non è possibile utilizzare Continue per passare all'iterazione successiva di un ciclo dello stesso tipo diverso da quello più interno che contiene l'istruzione.
Se sono presenti cicli annidati di tipo diverso, ad esempio un ciclo Do all'interno di un ciclo For, è possibile passare all'iterazione successiva di uno dei due cicli utilizzando Continue Do o Continue For.
Esempio
Nell'esempio di codice riportato di seguito viene utilizzata l'istruzione Continue While per passare alla colonna successiva di una matrice se uno dei divisori è zero. L'istruzione Continue While si trova in un ciclo For. Passa all'istruzione While col < lastcol, ossia all'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
Vedere anche
Riferimenti
Istruzione Do...Loop (Visual Basic)
Istruzione For...Next (Visual Basic)