Partie II
Programmation procédurale
220
© Éditions Eyrolles
boucle. Ce processus continue jusqu’à ce que la condition soit fausse pour passer en séquence
après le END WHILE. Quand la condition n’est jamais fausse, on dit que le programme boucle…
[etiquette:] WHILE condition DO
instructions;
END WHILE [etiquette];
Le tableau suivant décrit la programmation de deux tant que. Le premier calcule la somme des
100 premiers entiers. Le second recherche le premier numéro 4 dans une chaîne de caractères.
Cette structure est la plus puissante, car elle permet de programmer aussi un répéter, une
boucle sans fin et même un pour (qui n’est pas encore opérationnel). Elle doit être utilisée
quand il est nécessaire de tester une condition avant d’exécuter les instructions contenues dans
la boucle.
Structure répéter
La structure répéter se programme à l’aide de la syntaxe REPEAT… UNTIL.
Enfin un répéter qui se programme comme il faut (à savoir « répéter… jusqu’à condition »). Les
langages C et Java nous avaient déformé cette traduction par do {…} while(condition)
qui nécessite d’écrire l’inverse de la condition du jusqu’à de l’algorithmique. Ouf, MySQL
(comme Oracle) a bien programmé la structure répéter en traduisant ce fameux jusqu’à par la
directive until, et non plus par ce fâcheux while.
Tableau 6-15 Structures tant que
Condition simple
Condition composée
DECLARE v_somme INT DEFAULT 0;
DECLARE v_entier SMALLINT DEFAULT 1;
SET v_somme := v_somme+v_entier;
SET v_entier := v_entier+1;
;
SELECT v_somme;
+---------+
| v_somme |
+---------+
|
5050 |
+---------+
DECLARE v_telephone CHAR(14)
DEFAULT '06-76-85-14-89';
DECLARE v_trouve BOOLEAN
DEFAULT FALSE;
DECLARE v_indice SMALLINT DEFAULT 1;
IF SUBSTR(v_telephone,v_indice,1) = '4'
THEN
SET v_trouve := TRUE;
ELSE
SET v_indice := v_indice + 1;
END IF;
;
IF v_trouve THEN
SELECT CONCAT('Trouvé 4 à l''indice :
',v_indice);
END IF;
Trouvé 4 à l'indice : 11
Web
WHILE (v_entier <= 100) DO
END WHILE
WHILE (v_indice <= 14 AND NOT v_trouve) DO
END WHILE
Précédent

- 242/418

Suivant