© Éditions Eyrolles
221
chapitre n° 6
Bases du langage de programmation
[etiquette:] REPEAT
instructions;
UNTIL condition END REPEAT [etiquette];
La particularité de cette structure est que la première itération est effectuée quelles que soient
les conditions initiales. La condition n’est évaluée qu’en fin de boucle.
q
Si la condition est fausse, la séquence d’instructions est de nouveau exécutée. Ce processus
continue jusqu’à ce que la condition soit vraie pour passer en séquence après le END REPEAT.
q
Quand la condition n’est jamais vraie, on dit aussi que le programme boucle…
Le tableau suivant décrit la programmation de la somme des 100 premiers entiers et de la
recherche du premier numéro 4 dans une chaîne de caractères, à l’aide de la structure répéter.
Les variables sont les mêmes qu’au tableau précédent.
Cette structure doit être utilisée quand il n’est pas nécessaire de tester la condition avec les
données initiales, avant d’exécuter les instructions contenues dans la boucle.
Structure boucle sans fin
La syntaxe générale de cette structure est programmée par la directive LOOP. Elle devient sans
fin si vous n’utilisez pas l’instruction LEAVE qui passe en séquence du END LOOP.
[etiquette:] LOOP
instructions;
END LOOP [etiquette];
Le tableau suivant donne l’écriture du calcul de la somme des 100 premiers entiers en utilisant
deux boucles sans fin (qui se terminent toutefois, car tout a une fin, mais celles-là je les
programme avec LEAVE). J’en profite pour présenter ITERATE qui force à reprendre
l’exécution au début de la boucle.
Tableau 6-16 Structures répéter
Condition simple
Condition composée
REPEAT
SET v_somme := v_somme + v_entier;
SET v_entier := v_entier + 1;
UNTIL
END REPEAT;
REPEAT
IF SUBSTR(v_telephone,v_indice,1) = '4'
THEN
SET v_trouve := TRUE;
ELSE
SET v_indice := v_indice + 1;
END IF;
UNTIL
END REPEAT;
IF v_trouve THEN
SELECT CONCAT('Trouvé 4 à l''indice :
',v_indice);
END IF;
Web
v_entier > 100
(v_indice > 14 OR v_trouve)
Précédent

- 243/418

Suivant