Une boucle Do peut être utilisée pour exécuter un bloc défini d'instructions un nombre de fois indéterminé.
Type de boucle Do | Explication | Exemple |
---|---|---|
Boucle Do While ... | Boucle Do While ... Cette boucle évalue la condition, et si la condition est vraie, les instructions suivant la condition sont évaluées.
Une fois ceci effectué, la condition est réévaluée, et si la condition est vraie, les instructions sont réévaluées. Le processus se répète jusqu'à ce que la condition soit fausse. |
Do While conditioninstructions Loop |
Do Until ... Loop | Boucle Do Until… Cette boucle est similaire à la boucle Do While ... mis à part que les instructions sont évaluées jusqu'à (until) ce que la condition soit vraie, plutôt que tant (while) qu'elle est vraie. |
Do Until conditioninstructions Loop |
Do ... While | La boucle Do ... While évalue les instructions une seule fois.
La condition est ensuite évaluée et, si celle-ci est vraie, les instructions sont de nouveau évaluées. Ce processus se poursuit jusqu'à ce que la condition soit fausse. |
Doinstructions boucle While condition |
Do ... Loop Until | Similaire à la boucle Do… While, les instructions étant dans ce cas évaluées jusqu'à ce que la condition soit vérifiée. |
Doinstructions boucle Until condition |
Remarque les boucles Do prennent en charge une instruction Exit Do pour sortir immédiatement d'une boucle. L'instruction Exit Do est similaire à Exit For pour les boucles For/Next.
Do While ... Exemple de formule de boucle
Dans l'exemple suivant, la première occurrence d'un chiffre est recherchée dans une chaîne d'entrée. Si un chiffre est trouvé, c'est la position du chiffre qui est renvoyée ; sinon c'est la valeur -1. Dans ce cas, la chaîne d'entrée est définie explicitement comme une constante chaîne, mais elle pourrait également être définie comme égale à un champ de base de données de type chaîne.
Par exemple, pour la chaîne d'entrée, "Les 7 nains", la formule renvoie 5, qui est la position du chiffre 7.
Dim chaîneEntrée chaîneEntrée = "Les 7 nains" Dim i, strLen i = 1 strLen = Len (chaîneEntrée) formula = -1 Do While i <= strLen And formula = -1 Dim c As String c = Mid (chaîneentrée, i, 1) If IsNumeric (c) Then formula = i i = i + 1 Loop