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

Voir aussi