Les instructions de boucle (aussi appelé instructions répétitives) en langage Modula-2 sont au nombres de trois mais permettent quand même de faire face à de nombreuses situations ou presque:
- WHILE
- REPEAT ... UNTIL
- LOOP ... END
- FOR
WHILE
L'instruction «WHILE» permet la comparaison au début de la boucle, avant même que la suite d'instruction inclus dans la boucle ne soit lancé! On peut voir cette instruction à la manière d'un «IF» se répétant tant et aussi longtemps que la condition est vrai. Voici donc sa syntaxe :
WHILE expression_vrai DO instruction_exécuté_si_vrai END |
REPEAT ... UNTIL
L'instruction «REPEAT ... UNTIL» oblige à répéter une boucle jusqu'à ce que la condition soit finalement vrai. Ainsi, tant que la condition est fausse, la boucle est répétée. Ainsi le principe de fonctionnement est simple, on exécute les instructions, on effectue un teste pour vérifier si la condition est fausse, on revient au début et on recommence sinon on poursuit à l'instruction suivante. Voici enfin sa syntaxe:
REPEAT instruction UNTIL expression_fausse |
LOOP ... END
Cette instruction permet d'effectuer une boucle sans condition (boucle infinie). La seule façon de terminer cette boucle c'est avec une instruction «EXIT», «RETURN» ou «HALT». Voici enfin sa syntaxe:
LOOP instruction END |
FOR
Avec «Modula-2» l'instruction permettant d'effectuer des compteurs de boucles est «FOR». L'«expression1» permet d'identifier la variable devant être utilisé pour effectuer le compteur de boucle. L'«expression2» est la valeur de départ ou d'initialisation du compteur de boucle. L'«expression3» est la valeur de fin du compteur de boucle. Voici enfin sa syntaxe:
FOR expression1 := expression2 TO expression3 DO instruction; END |
ou
FOR expression1 := expression2 TO expression3 BY saut DO instruction; END |
Où l'expression «saut» permet d'indiquer le niveau d'incrémentation de la boucle.