|
||||||||||||||
La structure de contrôle while équivaud à une boucle associée
avec un if. while condition ... instructions ... /while
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.
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.
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.
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.
|