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 boucle

Structures de contrôle imbriquées

Référence

For...Next, instruction (Visual Basic)

Boolean, type de données (Visual Basic)

Exit, instruction (Visual Basic)

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