FOR |
Boucle Pour |
---|---|
QuickBASIC/QBasic |
Syntaxe
FOR variable=n1 TO n2 ... NEXT |
FOR variable=n1 TO n2 ... NEXT variable |
FOR variable=n1 TO n2 STEP n3 ... NEXT |
FOR variable=n1 TO n2 STEP n3 ... NEXT variable |
Paramètres
Nom | Description |
---|---|
variable | Ce paramètre permet d'indiquer la variable utiliser pour le compteur de boucle |
n1 | Ce paramètre permet d'indiquer la valeur de départ du compteur |
n2 | Ce paramètre permet d'indiquer la valeur de fin du compteur |
n3 | Ce paramètre permet d'indiquer la valeur à laquelle le compteur progresse ou régresse, soit sa valeur d'incrémentation ou de décrémentation. La valeur par défaut est 1. |
Description
Cette commande permet d'effectuer un compteur en boucle.
Remarques
- Si vous utilisez le mot réservé «STEP» avec des nombres réels, quelques bogues existent provoquant des boucles infini, il est donc préférable d'utiliser dans la mesure du possible des nombres entiers, pour obtenir une meilleure stabilité de vos programmes.
- Une boucle FOR ... NEXT s'exécute uniquement si le début et la fin sont cohérents avec l'incrémentation. Si le paramètre n2 est supérieur au paramètre n1, l'incrémentation doit être positif. Si le paramètre n2 est inférieur au paramètre n1, l'incrémentatopn doit être négatif. Ceci est vérifié au moment de l'exécution en comparant le signe de (n2 - n1) avec le signe du saut STEP. Si les deux ont le même signe, la boucle FOR ... NEXT est exécutée. Sinon, la boucle entière est ignorée.
- Dans la boucle FOR ... NEXT, les lignes de programme suivant l'instruction FOR sont exécutées jusqu'à ce que l'instruction NEXT soit rencontrée. Ensuite, le compteur est modifié à la quantité spécifié par STEP, et comparé à la valeur finale du paramètre n2.
- Si le compteur est inférieur ou égal à n2, le contrôle revient à l'instruction après l'instruction FOR et le processus se répète. Si le compteur est supérieur au paramètre n2, la boucle est quittée; l'exécution se poursuit avec l'instruction suivant l'instruction NEXT. (Si STEP est négatif, la boucle se répète jusqu'à ce que le compteur soit inférieur au paramètre n2.)
- Si les paramètres n1 et n2 ont la même valeur, la boucle s'exécute une fois, quelle que soit la valeur de STEP. Si STEP est égal à zéro, la boucle se répète indéfiniment.
- Évitez de changer la valeur du compteur (paramètre variable) dans la boucle. Changer le compteur de boucle est une mauvaise pratique de programmation; cela rend le programme plus difficile à lire et à déboguer.
- Vous pouvez imbriquer les boucles FOR ... NEXT; autrement dit, vous pouvez placer une boucle FOR ... NEXT dans une autre boucle FOR ... NEXT. Pour vous assurer que les boucles imbriquées fonctionnent correctement, attribuez à chaque boucle un nom de variable unique comme compteur. L'instruction NEXT de la boucle interne doit apparaître avant l'instruction NEXT de la boucle externe. La construction suivante est la format correcte :
- L'instruction EXIT FOR est une sortie alternative pratique des boucles FOR ... NEXT.
- Si vous omettez la variable dans une instruction NEXT, l'instruction NEXT correspond à l'instruction FOR la plus récente. Si une instruction NEXT est rencontrée avant son instruction FOR correspondante, le message d'erreur suivant se produit :
- Différences par rapport à BASICA : Contrairement à BASICA, le QBASIC ou le QuickBASIC prend en charge les valeurs de contrôle à double précision (n1, n2 et n3) dans ses boucles FOR ... NEXT. Cependant, si les valeurs de contrôle se situent dans l'intervalle des entiers, vous devez utiliser des valeurs de contrôle entières pour la vitesse d'incrémentaion ou de décrémentation maximale.
FOR I = i1 TO i2 [STEP i3] FOR J = j1 TO j2 [STEP j3] FOR K = k1 TO k2 [STEP k3] : NEXT K NEXT J NEXT I |
L'instruction NEXT avec le format suivant :
NEXT K, J, I
équivaut à la séquence d'instructions suivante :
NEXT K
NEXT J
NEXT I
NEXT without FOR. |
Exemple
Voici un exemple effectuant un compteur de boucle avec un saut par 2 :
on obtiendra le résultat suivant :
i = 0i = 2
i = 4
i = 6
i = 8
i = 10
Voir également
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - DO...LOOP
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - EXIT
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - WHILE...WEND
Dernière mise à jour : Mercredi, le 14 septembre 2016