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

Exécute une série d’instructions tant qu’une condition donnée est True.

Syntaxe

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

Éléments

Terme Définition
condition Obligatoire. Expression Boolean. Si condition est Nothing, Visual Basic le traite comme False.
statements Optionnel. Une ou plusieurs instructions suivantes While, qui s’exécutent chaque fois que condition est True.
Continue While Optionnel. Transfère le contrôle à l’itération suivante du bloc While.
Exit While Optionnel. Transfère le contrôle hors du bloc While.
End While Obligatoire. Met fin à la définition du bloc While.

Notes

Utilisez une structure While...End While lorsque vous souhaitez répéter un ensemble d’instructions un nombre indéfini de fois, tant qu’une condition reste True. Si vous souhaitez plus de flexibilité avec l’endroit où vous testez la condition ou le résultat pour lequel vous le testez, vous préférerez peut-être l’Instruction Do... loop. Si vous souhaitez répéter les instructions un nombre défini de fois, la For... L’instruction suivante est généralement un meilleur choix.

Notes

Le mot clé While est également utilisé dans l’Instruction Do... loop, la clause Skip While et la clause Take While.

Si condition est True, tous les statements s’exécutent jusqu’à ce que l’instruction End While soit rencontrée. Le contrôle retourne ensuite à l’instruction While et condition est à nouveau coché. Si condition est toujours True, le processus est répété. S’il est False, le contrôle passe à l’instruction qui suit l’instruction End While .

L’instruction While vérifie toujours la condition avant de démarrer la boucle. Le bouclage se poursuit pendant que la condition reste True. Si condition est False lorsque vous entrez la boucle pour la première fois, elle ne s’exécute pas une seule fois.

Le condition résulte généralement d’une comparaison de deux valeurs, mais il peut s’agir d’une expression qui prend une valeur type de données booléen (True ou False). Cette expression peut inclure une valeur d’un autre type de données, tel qu’un type numérique, qui a été converti en Boolean.

Vous pouvez imbriquer des boucles While en plaçant une boucle dans une autre. Vous pouvez également imbriquer différents types de structures de contrôle entre elles. Pour plus d’informations, consultez structures de contrôle imbriquées.

Exit While

L’instruction Exit While peut fournir un autre moyen de quitter une boucle While. Exit While transfère immédiatement le contrôle à l’instruction qui suit l’instruction End While.

Vous utilisez généralement Exit While une fois que certaines conditions sont évaluées (par exemple, dans une structure de If...Then...Else). Vous pouvez quitter une boucle si vous détectez une condition qui rend inutile ou impossible de continuer l’itération, telle qu’une valeur erronée ou une requête d’arrêt. Vous pouvez utiliser Exit While lorsque vous testez une condition qui peut entraîner une boucle infinie, qui est une boucle qui peut exécuter un nombre extrêmement élevé ou même infini de fois. Vous pouvez ensuite utiliser Exit While pour échapper à la boucle.

Vous pouvez placer n’importe quel nombre d’instructions Exit While partout dans la boucle While.

Lorsqu’elles sont utilisées dans des boucles While imbriquées, Exit While transfère le contrôle hors de la boucle la plus interne et dans le niveau supérieur suivant d’imbrication.

L’instruction Continue While transfère immédiatement le contrôle à l’itération suivante de la boucle. Pour plus d’informations, consultez instruction Continue.

Exemple 1

Dans l’exemple suivant, les instructions de la boucle continuent à s’exécuter jusqu’à ce que la variable index soit supérieure à 10.

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Exemple 2

L’exemple suivant illustre l’utilisation des instructions Continue While et Exit While.

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 And index <= 8 Then
        Continue While
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit While
    End If
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

Exemple 3

L’exemple suivant lit toutes les lignes d’un fichier texte. La méthode OpenText ouvre le fichier et retourne un StreamReader qui lit les caractères. Dans la condition While, la méthode Peek du StreamReader détermine si le fichier contient des caractères supplémentaires.

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If
End Sub

Voir aussi