Une boucle While peut être utilisée pour exécuter indéfiniment un bloc défini d'instructions.
Type de boucle | Explication | Exemple |
---|---|---|
Exemple de boucle While ... Do | Dans la boucle While ... Do, la condition est évaluée, et si celle-ci est vraie, l'expression qui suit Do est également évaluée.
Après ce premier passage, la condition est de nouveau évaluée et, si celle-ci est vraie, l'expression qui suit Do est de nouveau évaluée. Le processus se répète jusqu'à ce que la condition soit fausse. |
While condition Doexpression |
Do ... While | La boucle Do ... While, l'expression est évaluée une fois, quelle qu'elle soit.
La condition est ensuite évaluée et, si celle-ci est vraie, l'expression est de nouveau évaluée. Ce processus se poursuit jusqu'à ce que la condition soit fausse. |
Doexpression While condition |
Remarque Les boucles While acceptent l'instruction Exit While qui assure une sortie immédiate de la boucle. Son utilisation est analogue à celle de l'instruction Exit For dans les boucles For. comme pour la boucle For, la boucle While considérée comme une expression renvoie toujours la valeur booléenne True (Vrai).
Exemple de boucle While ... Do
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.
Local StringVar chaîneEntrée := "Les 7 nains"; Local NumberVar strLen := Length (chaîneEntrée); Local NumberVar résultat := -1; Local NumberVar i := 1; While i <= strLen And résultat = -1 Do ( Local StringVar c := chaîneEntrée [i]; If NumericText (c) Then résultat := i; i := i + 1; ); result