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