Partager via


Comment : passer à l'itération suivante d'une boucle

Mise à jour : novembre 2007

Si vous avez terminé le traitement de l'itération actuelle d'une boucle Do, For ou While, vous pouvez passer immédiatement à l'itération suivante à l'aide de Continue, instruction (Visual Basic).

Passage à l'itération suivante

Pour passer à l'itération suivante d'une boucle For...Next

  1. Écrivez la boucle For...Next de manière normale.

  2. Utilisez Continue For sur tous les emplacements où vous souhaitez terminer l'itération actuelle et passer immédiatement à l'itération suivante.

    Public Function findLargestRatio(ByVal high() As Double, _
        ByVal low() As Double) As Double
        Dim ratio As Double
        Dim largestRatio As Double = Double.MinValue
        For counter As Integer = 0 To low.GetUpperBound(0)
            If Math.Abs(low(counter)) < System.Double.Epsilon _
                Then Continue For 
            ratio = high(counter) / low(counter)
            If Double.IsInfinity(ratio) OrElse Double.IsNaN(ratio) _
                Then Continue For 
            If ratio > largestRatio Then largestRatio = ratio
        Next counter
        Return largestRatio
    End Function
    

Passage à partir d'une boucle imbriquée

Si vous avez des boucles Do, For ou While imbriquées les unes dans les autres, vous pouvez passer immédiatement à l'itération suivante, quel que soit le niveau dans l'imbrication. Toutefois, cela est vrai uniquement lorsque les boucles sont de types différents. Si vous avez des boucles imbriquées du même type, par exemple des boucles While imbriquées, Continue While passe à l'itération suivante de la boucle While la plus profonde.

Pour passer à l'itération suivante d'une boucle Do à partir d'une boucle For imbriquée

  1. Écrivez les boucles imbriquées de manière normale.

  2. Utilisez Continue Do sur tous les emplacements où vous souhaitez terminer l'itération actuelle de la boucle For interne et passer à l'itération suivante de la boucle Do externe.

    Public Sub divideElements(ByRef matrix(,) As Double)
        Dim i As Integer = -1
        Do Until i > matrix.GetUpperBound(0)
            i += 1
            For j As Integer = 0 To matrix.GetUpperBound(1)
                If matrix(j, j) = 0 Then Continue Do 
                matrix(i, j) /= matrix(j, j)
            Next j
        Loop 
    End Sub
    

Voir aussi

Tâches

Comment : transférer un contrôle hors d'une structure de contrôle

Comment : exécuter plusieurs instructions à plusieurs reprises

Comment : exécuter plusieurs instructions pour chaque élément dans une collection ou un tableau

Comment : améliorer les performances d'une boucle

Concepts

Structures de boucle

Structures de contrôle imbriquées

Référence

While...End While, instruction (Visual Basic)

Do...Loop, instruction (Visual Basic)

For...Next, instruction (Visual Basic)

Autres ressources

Flux de contrôle en Visual Basic