Continue, instruction (Visual Basic)
Transfère immédiatement le contrôle à l’itération suivante d’une boucle.
Syntaxe
Continue { Do | For | While }
Notes
Vous pouvez effectuer un transfert à partir d’une boucle Do
, For
ou While
vers l’itération suivante de cette boucle. Le contrôle passe immédiatement au test de condition de boucle, qui équivaut au transfert vers l’instruction For
ou à l’instruction While
ou à l’instruction Do
ou Loop
qui contient la clause Until
ou While
.
Vous pouvez utiliser Continue
à n’importe quel emplacement de la boucle qui autorise les transferts. Les règles autorisant le transfert de contrôle sont identiques à celles de l’instruction GoTo.
Par exemple, si une boucle est totalement contenue dans un bloc Try
, un bloc Catch
ou un bloc Finally
, vous pouvez utiliser Continue
pour transférer hors de la boucle. Si, d’autre part, la structure Try
...End Try
est contenue dans la boucle, vous ne pouvez pas utiliser Continue
pour transférer le contrôle hors du bloc Finally
, et vous pouvez l’utiliser pour transférer hors d’un bloc Try
ou Catch
uniquement si vous transférez complètement hors de la structure Try
...End Try
.
Si vous avez imbriqué des boucles du même type, par exemple une boucle Do
dans une autre boucle Do
, une instruction Continue Do
passe à l’itération suivante de la boucle Do
la plus interne qui la contient. Vous ne pouvez pas utiliser Continue
pour passer à l’itération suivante d’une boucle contenant du même type.
Si vous avez imbriqué des boucles de différents types, par exemple une boucle Do
dans une boucle For
, vous pouvez passer à l’itération suivante d’une des boucles à l’aide de Continue Do
ou Continue For
.
Exemple
L’exemple de code suivant utilise l’instruction Continue While
pour passer à la colonne suivante d’un tableau si un diviseur est égal à zéro. Continue While
est à l’intérieur d’une boucle For
. Il transfère à l’instruction While col < lastcol
, qui est l’itération suivante de la boucle While
la plus interne qui contient la boucle 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