PERFORM – Les boucles
En COBOL, les boucles sont principalement gérées par le verbe PERFORM. Il existe plusieurs variantes : PERFORM UNTIL, PERFORM VARYING, PERFORM paragraphe… C’est l’instruction la plus utilisée pour répéter un bloc de code ou appeler une section/procedure plusieurs fois.
Exemple de code : Table de multiplication + compteur
IDENTIFICATION DIVISION.
PROGRAM-ID. BOUCLES-PERFORM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOMBRE PIC 9(2) VALUE 7.
01 COMPTEUR PIC 9(2) VALUE ZERO.
01 RESULTAT PIC 9(3).
01 I PIC 9(2).
PROCEDURE DIVISION.
DISPLAY "Table de multiplication de " NOMBRE ":".
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
COMPUTE RESULTAT = NOMBRE * I
DISPLAY NOMBRE " × " I " = " RESULTAT
END-PERFORM.
DISPLAY SPACE.
DISPLAY "Comptons de 1 à 5 avec PERFORM UNTIL :".
MOVE 1 TO COMPTEUR.
PERFORM AFFICHER-COMPTEUR UNTIL COMPTEUR > 5.
STOP RUN.
AFFICHER-COMPTEUR.
DISPLAY "Compteur = " COMPTEUR
ADD 1 TO COMPTEUR
.
Télécharger le code
Résultat attendu à l'exécution
Table de multiplication de 07:
07 × 01 = 007
07 × 02 = 014
07 × 03 = 021
07 × 04 = 028
07 × 05 = 035
07 × 06 = 042
07 × 07 = 049
07 × 08 = 056
07 × 09 = 063
07 × 10 = 070
Comptons de 1 à 5 avec PERFORM UNTIL :
Compteur = 01
Compteur = 02
Compteur = 03
Compteur = 04
Compteur = 05
Explication détaillée – focus sur les variantes de PERFORM
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
Variante la plus courante pour les boucles numérotées.
•VARYINGvariable : la variable qui change à chaque tour
•FROMvaleur initiale
•BYpas d’incrémentation (peut être négatif)
•UNTILcondition d’arrêt (testée avant chaque itération)
Pour les débutants : C’est comme une boucleforclassique (i = 1; i <= 10; i++).END-PERFORM.
Termine le bloc inline (style COBOL moderne – très recommandé).PERFORM AFFICHER-COMPTEUR UNTIL COMPTEUR > 5.
Appelle un paragraphe (ou une section) et répète tant que la condition est fausse.
La condition est testée avant chaque exécution.
Le paragraphe se termine par un point (.) → retour implicite au PERFORM.AFFICHER-COMPTEUR.
Nom du paragraphe (convention : majuscules, tirets).
Contient le code à répéter.
ADD 1 TO COMPTEURincrémente la variable (équivalent de compteur++).
Points clés pour débutants :
•
• Pour une boucle qui s’exécute au moins une fois → utiliser
• On peut imbriquer des
• Évitez les boucles infinies : assurez-vous que la condition finira par devenir vraie
•
•
UNTIL teste avant → si condition vraie dès le départ → 0 exécution• Pour une boucle qui s’exécute au moins une fois → utiliser
PERFORM … WITH TEST AFTER (variante moins courante)• On peut imbriquer des
PERFORM• Évitez les boucles infinies : assurez-vous que la condition finira par devenir vraie
•
PERFORM paragraphe est très utilisé pour structurer le code (comme des fonctions simples)
Prochain sujet : Fichiers séquentiels – SELECT, FD, OPEN, READ, WRITE, CLOSE.