FOR var-num = exp-num-1 TO exp-num-2 [STEP exp-num-3]
Marque le début d’une série d’instructions à exécuter en boucle.
Paramètre | Description |
---|---|
var-num | Variable numérique compteur de boucle |
exp-num-1 | Valeur de départ du compteur de boucle |
exp-num-2 | Borne supérieure du compteur de boucle |
exp-num-3 | Pas d’incrémentation du compteur de boucle |
Exemple 1
10 FOR X = 1 TO 10
20 PRINT X
30 NEXT X
La ligne 10 marque le début d’une boucle : la variable X va prendre toutes les valeurs entières comprises entre 1 et 10 et la ligne 20 va être répétée autant de fois.
Exemple 2
10 FOR X = 10 TO 1 STEP -0.5
20 PRINT X
30 PRINT X/2
40 NEXT X
Ici, les instructions situées à l’intérieur de la boucle (lignes 20 et 30) seront exécutées pour les valeurs de X variant entre 10 et 1 avec un pas négatif de -0.5.
Action
Lorsqu’une instruction FOR est rencontrée, toutes les instructions comprises entre elle et l’instruction NEXT suivante sont exécutées pour toutes les valeurs de var-num
comprises entre exp-num-1
et exp-num-2
avec un pas de exp-num-3
.
La valeur par défaut de exp-num-3
est 1.
-
Une boucle FOR ... NEXT se déroule de la façon suivante :
1) Le compteur de la boucle
var-num
est initialisé à la valeurexp-num-1
,2) Les instructions comprises entre l’instruction FOR et l’instruction NEXT suivante sont exécutées,
3) La valeur du compteur de boucle
var-num
, augmentée de la valeur du pasexp-num-3
, est comparée à la borneexp-num-2
: si le pas est positif (respectivement négatif) et que le résultat est supérieur (respectivement inférieur) à la borne, alors l’exécution se poursuit à l’instruction qui suit l’instruction NEXT. Sinon, le pas est ajouté à compteur de bouclevar-num
et le processus reprend à l’étape 3. -
Le compteur de boucle ne doit normalement pas être modifié à l’intérieur de la boucle. Dans le cas contraire, c’est la nouvelle valeur qui serait utilisée à l’étape 3.
-
La même variable doit être spécifiée comme compteur de boucle dans l’instruction FOR et dans l’instruction NEXT qui lui est associée. A défaut, une erreur 62 est signalée.
- Il est interdit de se brancher directement à l’intérieur d’une boucle sans passer par l’instruction FOR. A défaut, une erreur 62 serait détectée à l’exécution de l’instruction NEXT.
Il est toutefois possible de sortir d’une boucle et de s’y rebrancher. Dans ce cas, les instructions exécutées à l’extérieur de la boucle peuvent être considérées comme faisant partie de la boucle. C’est, en particulier, ce qui a lieu lorsqu’un sous-programme est appelé de l’intérieur d’une boucle.
Il est possible, et c’est un cas fréquent, de sortir définitivement d’une boucle avant avoir effectué toutes les itérations.
- Il est possible d’imbriquer plusieurs boucles à condition qu’elles ne se chevauchent pas : une boucle interne doit être entièrement contenue dans la boucle externe. De plus, le compteur de chaque boucle doit être distinct des autres compteurs.