For <variable> = <expression 1> To <expression 2> ; Instructions Next
Dans une boucle For...Next vous utilisez une variable numérique comme compteur et mettez le nom de cette variable à la place de <variable> dans la structure ci-dessus. La variable compteur est définie à la valeur de l'expression 1 avant le début de la boucle. La boucle commence en comparant la valeur courante de la variable compteur à la valeur de l'expression 2 (qui est la valeur jusqu'à laquelle il faut compter). Si le compteur a dépassé la valeur de l'expression 2 alors la boucle se termine et le programme continue de s'exécuter à partir de la première instruction suivant le mot-clé Next.
Si la variable compteur n'a pas atteint la valeur de l'expression 2 alors les instructions situées entre les mots-clés For et Next sont exécutées. La variable compteur est ensuite incrémentée d' un et le programme reprend son exécution à partir du début de la boucle (où il vérifie la valeur de la variable).
Notez que le compteur doit dépasser la valeur de l'expression 2 pour que la boucle s'arrête. Cela signifie que les instructions de la boucle seront exécutées lorsque la variable compteur aura la même valeur que l'expression 2.
L'exemple ci-dessous présente une utilisation simple de la boucle For...Next. Vous pouvez également obtenir le source ici :
If OpenConsole() a_l_autre = 10 For d_une_chose=1 To a_l_autre PrintN("L'indice courant de la boucle est "+Str(d_une_chose)) Next PrintN("Appuyez sur ENTREE pour quitter le programme.") Input() CloseConsole() EndIf End
Comme vous pouvez le constater si vous exécuter l'exemple (et comme le montre la sortie (output) de l'exemple à droite de ce
paragraphe) au premier passage dans la boucle, la valeur de la variable d_une_chose
(qui est utilisée comme compteur) est 1. C'est la valeur de la première expression
(qui est simplement la constante numérique un).
A chaque itération (autre terme habituel pour indiquer une répétition) de la boucle vous pouvez voir que la valeur d_une_chose est incrémentée d'un. Enfin, la boucle est bouclée quand la valeur du compteur est 10 - c'est la même valeur que la variable a_l_autre, qui est utilisée comme seconde expression, pour contrôler la fin de la boucle.
For <variable> = <expression 1> To <expression 2> [Step <expression 3>] ; Instructions NextIl apparaît entre crochets pour indiquer qu'il s'agit d'un élément facultatif de la commande (et évidemment, en l'omettant vous utilisez la boucle For...Next de la même manière qu'en haut de cette page). Cependant, quand vous utilisez le mot-clé Step la valeur de l'expression 3 est la valeur qui est ajoutée à la variable compteur. Par exemple, si vous utilisez "Step -1" alors la boucle For...Next comptera à rebours. Si vous utilisez "Step 10" alors elle comptera dans l'ordre croissant par pas de 10.
Cet exemple présente l'utilisation du mot-clé Step dans des boucles For...Next. Vous pouvez également l'obtenir à partir d'ici:
If OpenConsole() PrintN("Debut de la premiere boucle") l_autre = 1 For d_une_chose=10 To l_autre Step -1 PrintN("L'indice courant de la boucle est "+Str(d_une_chose)) Next PrintN("") PrintN("Debut de la seconde boucle") For d_une_chose=1 To 10 Step 2 PrintN("L'indice courant de la boucle est "+Str(d_une_chose)) Next PrintN("Appuyez sur ENTREE pour quitter le programme.") Input() CloseConsole() EndIf End
Comme vous pouvez le constater sur la sortie (output), la valeur de la variable d_une_chose
est incrémentée par la valeur de l'expression 3 à chaque fois qu'elle est affichée, dans les deux boucles (dans le
premier cas l'incrémentation par un nombre négatif équivaut à décrémenter).
Dans la deuxième boucle vous remarquerez que 10, la valeur de fin pour la boucle, n'est jamais affichée.
C'est parce que la valeur de la variable d_une_chose est 9 et lorsqu'on lui ajoute 2 cela donne 11.
La valeur de fin de la boucle est dépassée, donc la boucle se termine ici.