Do...Loop, instruction (Visual Basic)
Mise à jour : novembre 2007
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 ]
[ Exit Do ]
[ statements ]
Loop
-or-
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
Éléments
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
Facultatif. Expression Boolean. Si condition a la valeur Nothing, Visual Basic la considère comme False.statements
Facultatif. Une ou plusieurs instructions répétées tant que condition a la valeur True, ou jusqu'à ce qu'elle le devienne.Exit Do
Facultatif. Transfère le contrôle en dehors de la boucle Do.Loop
Obligatoire. 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.
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. Elle vous permet également de tester condition au début ou à la fin de la boucle.
Règles
Type de condition. La condition provient généralement d'une comparaison entre deux valeurs, mais elle peut être une expression qui évalue une valeur Boolean, 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.
Test de la condition. Vous pouvez tester condition une seule fois, au début ou à la fin de la boucle. Vous pouvez utiliser While ou Until pour spécifier condition, mais pas les deux.
Nombre d'itérations. Si vous testez 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.
Imbrication de boucles. Vous pouvez imbriquer des 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.
Transfert en dehors de la boucle.Exit, instruction (Visual Basic) passe immédiatement le contrôle à l'instruction qui suit l'instruction Loop. Vous pouvez vouloir 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 placer un nombre quelconque d'instructions Exit Do n'importe où dans la boucle Do. Exit Do est généralement utilisé après l'évaluation d'une condition, par exemple dans une structure If...Then...Else.
Boucles infinies
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. Si vous détectez une telle condition, vous pouvez utiliser Exit Do pour quitter la boucle. Sinon, la boucle continue à s'exécuter.
Dans l'exemple suivant, la valeur assignée à number peut entraîner l'exécution de la boucle plus de 2 ^ 31 fois. L'instruction If vérifie cette condition et, si c'est le cas, quitte ensuite la boucle afin d'éviter le bouclage à l'infini.
Sub exitDoExample()
Dim counter As Integer = 0
Dim number As Integer = 8
Do Until number = 10
If number <= 0 Then Exit Do
number -= 1
counter += 1
Loop
MsgBox("The loop ran " & counter & " times.")
End Sub
Remarque : |
---|
Pour arrêter une boucle infinie, appuyez sur ÉCHAP ou sur CTRL+ATTN. |
Exemple
L'exemple suivant illustre les structures Do...Loop imbriquées, ainsi que l'utilisation de While et Until, et le test au début et (instruction Do) et à la fin (instruction Loop) de la boucle.
Sub DoExample()
Dim check As Boolean = True
Dim counter As Integer = 0
Do
Do While counter < 20
counter += 1
If counter = 10 Then
check = False
Exit Do
End If
Loop
Loop Until check = False
End Sub
Dans le précédent exemple, l'instruction Do...Loop interne se répète 10 fois, attribue la valeur False à l'indicateur, puis quitte la boucle prématurément à l'aide de l'instruction Exit Do. La boucle externe s'arrête immédiatement après vérification de la valeur de l'indicateur.
Voir aussi
Tâches
Comment : améliorer les performances d'une boucle
Concepts
Structures de contrôle imbriquées
Référence
For...Next, instruction (Visual Basic)
Boolean, type de données (Visual Basic)