Menu des manuels

 

La boucle For

 
La boucle for est utile pour répéter l'exécution d'un bloc de code un nombre défini de fois. Le constructeur de la boucle FOR est le suivant : - For x = 1 to 10 - ... - EndFor "x" est la variable de contrôle utilisée comme compteur. Elle est suivie par l'opérateur d'affectation "=". Le nombre "1" est la valeur de départ de la boucle, tandis que "10" est la valeur d'arrivée. Le mot-clé "to" sépare la valeur de départ de celle d'arrivée. Par exemple : - For x = 1 to 10 - Circle(x*10, 50, 8) - EndFor Cet exemple réalise une ligne horizontale de dix cercles qui s'entrecroisent. Comme cela vient d'être vu, l'instruction FOR est utilisée lorsqu'une boucle doit être exécutée un nombre prédéfini de fois. La variable de contrôle "x" de la boucle est initialisée, contrôlée et modifiée par les actions de l'instruction FOR. Elle peut être utilisée dans le corps de la boucle, mais ne devrait jamais être modifiée. Les valeurs de départ et d'arrivée de la boucle peuvent être ascendantes ou descendantes : ce sera la tâche de l'interpréteur d'incrémenter ou de décrémenter la variable de contrôle. Plusieurs boucles FOR peuvent être imbriquées. Par exemple, le code qui suit affiche un graphique de cercles qui s'entrecroisent sur toute la feuille. - For x = 1 to 10 - For y = 1 to 10 - Circle(x*10, y*10, 8) - EndFor - EndFor L'incrémentation ou la décrémentation de la boucle est généralement définie par l'interpréteur à la valeur 1. Cela signifie que la variable de contrôle est incrémentée ou décrémentée d'une unité par itération. Le pas d'incrémentation ou de décrémentation peut cependant être défini explicitement en utilisant le mot-clé "Step". L'instruction "Step" est optionnelle. Par exemple : - For x = 1 to 10 step 2 - Circle(x*10, 50, 8) - EndFor Nous avons varié le pas d'incrémentation en le définissant explicitement à 2. Concrètement, cela signifie que 5 cercles seront tracés, et non plus 10. La variable de contrôle "x" sera incrémentée de deux unités, par conséquent la boucle sera répétée seulement cinq fois, au lieu de dix. La valeur Step ne peut être que positive, car l'interpréteur se chargera de l'utiliser soit comme incrément, soit comme décrément de la variable de contrôle. Même si un nombre négatif était utilisé, il serait ramené à un nombre positif avant utilisation. Les valeurs de départ, d'arrivée et de pas ne peuvent être que de type numérique. Le type numérique inclut tous les nombres entiers et à virgule flottante. Dans la boucle FOR, nous pouvons donc également utiliser des nombres à virgule. Par exemple : - For x = 0 to 3.13 step 0.01 - ... - EndFor L'itération d'une boucle FOR peut être interrompue en utilisant l'instruction Break. Lorsque l'instruction Break est rencontrée, l'exécution passe à l'instruction immédiatement après le corps de la boucle. Par exemple : - For x = 1 to 10 - If x > 5 - Break - EndIf - Circle(x*10, 50, 8) - EndFor L'exemple est naturellement un non-sens, car l'instruction If interrompt la boucle lorsque la variable de contrôle "x" dépasse 5. Plus simplement, la boucle peut atteindre 5 et se terminer. L'instruction Break ne devrait généralement pas être utilisée, car il existe des outils plus appropriés pour écrire une boucle. Cependant, en cas de besoin, son utilisation peut être tolérée. L'instruction Continue a un effet similaire à Break sur l'exécution de la boucle. Celle-ci est interrompue mais, contrairement à Break, l'exécution retourne au début, la variable de contrôle est mise à jour et, si nécessaire, le corps de la boucle est réexécuté. Par exemple : - For x = 1 to 10 - If (x >= 4) and (x <= 7) - Continue - EndIf - Circle(x*10, 50, 8) - EndFor Dans l'exemple, une ligne horizontale de cercles est tracée. Cependant, les quatrième, cinquième, sixième et septième cercles ne sont pas dessinés, grâce à l'instruction If qui fait repartir la boucle si la variable "x" est égale ou supérieure à 4 et inférieure ou égale à 7. Tout comme l'instruction Break, Continue peut être remplacée par des instructions plus performantes qui rendent le code plus lisible.