While
La structure de contrôle while équivaud à une boucle associée avec un if.
while condition
... instructions ...
/while

Exemple de while int x = 10

while x < 20
  echo x, " "
  x + 1
/while
Affiche: > 10 11 12 13 14 15 16 17 18 19


En même temps que le while, il faut ici introduire deux instructions spéciales qui sont utile avec toute les sortes de boucles.


Break

Cette commande sort de la boucle.
On en donnera un exemple en utilisant le mot-clé "forever" (pour toujours) qui crée délibérément une boucle infinie.

Exemple de break int x = 0

while forever
  print x
  if x > 100 break
  x + 1
/while


Quand x atteint la valeur 100, l'instruction break fait que le programme continue sur l'instuction qui suit la structure while.


Continue

Cette seconde commande permet de sauter toutes les instructions, de la position
actuelle, jusqu'au /while, donc de démarrer une nouvelle boucle.

Exemple de continue int x = -1

while x < 20
  x + 1
  if (x mod 2) = 0 continue
  print x
/while


 Cet exemple affiche seulement les valeurs paires de x, car lorsque l'on rencontre une valeur impaire, la condition du if est vérifié et une commande continue est exécutée.
 Dans cet exemple, l'incrémentation de x doit être placée sur la première ligne dans la structure.
Si vous avez déja programmé, vous dévinez la raison. Si cela avait été placé avant le /while, comme dans les exemples précédents, l'instruction continue aurait résulté en une boucle sans fin, puisque l'incrémentation aurait été sautée avec le reste.
Pour éviter ce genre d'erreurs, une option existe en Scriptol.


While let

Cette variante empêche le programmeur d'être amené aux bogues par la conception déficiente de la structure while (je ne sais pas qui l'a inventée... Non, c'est faux, je sais qui c'est, mais je ne veux pas le dénoncer ;-)
L'option let permet de déplacer l'incrémentation au-dela du point où la commande continue redémarre le traitement.


Exemple de while ... let int x = 0

while x < 20
  if (x mod 2) = 0 continue
  print x
/while let x + 1


C'est la forme conventionnelle. Une forme plus simple existe, et vous êtes tout à fait encouragé à l'utiliser pour toute structure de contrôle while qui incrémente (ou décrémente) une variable.


Exemple de while ... let
simplifié
int x = 0

while x < 20
  if (x mod 2) = 0 continue
  print x
let x + 1


 Exercices
1) En s'inspirant de l'exemple ci-dessus, afficher les nombres impairs de 1 à 9.

Réponse