Do...Loop, instruction (Visual Basic)
Répète un bloc d'instructions tant qu'une condition Boolean a la valeur True ou jusqu'à ce que la condition devienne True.
Do { While | Until } condition
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop
-or-
Do
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
Composants
Terme |
Définition |
Do |
Requis. Démarre la définition de la boucle Do. |
While |
Obligatoire sauf si Until est utilisé. Répétez la boucle jusqu'à ce que condition ait la valeur False. |
Until |
Obligatoire sauf si While est utilisé. Répétez la boucle jusqu'à ce que condition ait la valeur True. |
condition |
Optionnel. Expression Boolean. Si condition est Nothing, Visual Basic le traite comme False. |
statements |
Optionnel. Une ou plusieurs instructions répétées tant que condition a la valeur True, ou jusqu'à ce qu'elle le devienne. |
Continue Do |
Optionnel. Transfère le contrôle à l'itération suivante de la boucle d' Do . |
Exit Do |
Optionnel. Transfère le contrôle en dehors de la boucle Do. |
Loop |
Requis. Met fin à la définition de la boucle Do. |
Notes
Utilisez une structure Do...Loop lorsque vous souhaitez répéter un ensemble d'instructions un nombre indéfini de fois, jusqu'à ce qu'une condition soit satisfaite. Si vous souhaitez répéter les instructions un nombre défini de fois, il est préférable d'utiliser For...Next Statement.
Vous pouvez utiliser While ou Until pour spécifier condition, mais pas les deux.
Vous ne pouvez tester condition qu'une seule fois, au début ou à la fin de la boucle. Si vous testez la condition au début de la boucle (dans l'instruction Do), la boucle peut ne jamais s'exécuter, même une fois. Si vous la testez à la fin de la boucle (dans l'instruction Loop), la boucle s'exécute toujours, au moins une fois.
La condition provient généralement d'une comparaison entre deux valeurs, mais elle peut être une expression qui évalue une valeur Booléen, type de données (Visual Basic) (True ou False). Elle peut comprendre des valeurs d'autres types de données, tels que des types numériques, qui ont été converties en type Boolean.
Vous pouvez imbriquer les boucles Do en plaçant une boucle à l'intérieur d'une autre. Vous pouvez également imbriquer divers types de structures de contrôle l'un dans l'autre. Pour plus d'informations, consultez Structures de contrôle imbriquées (Visual Basic).
Notes
La structure Do...Loop offre plus de flexibilité que While...End While, instruction (Visual Basic) car elle vous permet de mettre fin à la boucle lorsque condition n'a plus la valeur True ou lorsqu'elle prend la valeur True.Cela vous permet également de tester condition au début ou la fin de la boucle.
Exit Do
L'instruction Exit Do peut fournir une solution alternative pour sortir d'une Do…Loop. L'instruction du type Exit Do passe immédiatement le contrôle à l'instruction qui suit l'instruction Loop.
Exit Do est souvent utilisé après avoir évalué la condition, par exemple dans une structure If...Then...Else. Vous pouvez éventuellement quitter une boucle si vous décelez une condition qui la rend inutile ou impossible pour poursuivre l'itération, telle qu'une valeur erronée ou une demande d'arrêt. Vous pouvez utiliser Exit Do pour tester une condition qui engendrerait une boucle infinie, c'est-à-dire une boucle qui pourrait s'exécuter de nombreuses fois, voire indéfiniment. Vous pouvez utiliser Exit Do pour abandonner la boucle.
Vous pouvez inclure n'importe quel nombre d'instructions Exit Do, n'importe où dans une Do…Loop.
Utilisée dans des boucles Do imbriquées, l'instruction Exit Do transfère le contrôle en dehors de la boucle la plus profonde et au niveau d'imbrication supérieur suivant.
Exemple
Dans l'exemple suivant, les instructions dans la boucle poursuivent leur exécution jusqu'à ce que la variable index soit supérieure à 10. La clause Until est à la fin de la boucle.
Dim index As Integer = 0
Do
Debug.Write(index.ToString & " ")
index += 1
Loop Until index > 10
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
L'exemple suivant utilise une clause While au lieu d'une clause Until, et condition est testée au début plutôt qu'à la fin de la boucle.
Dim index As Integer = 0
Do While index <= 10
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
Dans l'exemple suivant, condition arrête la boucle lorsque la variable index est supérieure à 100. Cependant, avec l'instruction If dans la boucle, l'instruction Exit Do arrête la boucle lorsque la variable d'index est supérieure à 10.
Dim index As Integer = 0
Do While index <= 100
If index > 10 Then
Exit Do
End If
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
L'exemple suivant lit toutes les lignes dans un fichier texte. La méthode OpenText ouvre le fichier et retourne un StreamReader qui lit les caractères. Dans la condition Do...Loop, la méthode Peek de StreamReader détermine s'il existe 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)
Do While sr.Peek() >= 0
Debug.WriteLine(sr.ReadLine())
Loop
sr.Close()
End If
End Sub
Voir aussi
Référence
For...Next, instruction (Visual Basic)
Booléen, type de données (Visual Basic)
Exit, instruction (Visual Basic)
While...End While, instruction (Visual Basic)