IDENTIFICATION DIVISION.
PROGRAM-ID. EXO-END-PERFORM-09.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-I PIC 9 VALUE 0.
PROCEDURE DIVISION.
DISPLAY "Boucle de 1 a 5 :"
PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 5
DISPLAY "Compteur : " WS-I
END-PERFORM
DISPLAY "Boucle terminee."
STOP RUN.
Lecture simple
PERFORM VARYING crée une boucle. Ici, WS-I commence à 1, augmente de 1, et la boucle s’arrête quand WS-I > 5. Le bloc répété est celui qui se trouve entre PERFORM et END-PERFORM.
Votre micro-exercice
Faites ces 3 modifications :
- Changez la boucle pour aller de 2 à 10, de 2 en 2.
- Dans la boucle, affichez aussi un message “Tour en cours” avant la valeur.
- Ajoutez un dernier DISPLAY après END-PERFORM : “Retour au programme principal.”
Erreur fréquente à éviter
Condition d’arrêt incorrecte. Par exemple, écrire UNTIL WS-I < 5 alors que WS-I augmente, ce qui peut produire une boucle trop courte ou une boucle infinie selon la logique.
Autre piège : oublier END-PERFORM. Dans un code plus long, on ne sait plus exactement où la boucle se termine, et on risque d’inclure trop de lignes dans la répétition.