Exercice 9 : end-perform

Micro-exercice

Objectif : utiliser un PERFORM “inline” (un bloc écrit directement dans la procédure) et le fermer proprement avec END-PERFORM. Ce style est très utile pour les boucles simples : on voit immédiatement ce qui est répété.

Ce que vous pratiquez

  • Créer un compteur numérique.
  • Répéter un affichage avec PERFORM VARYING.
  • Fermer la boucle avec END-PERFORM.

Repère sur les colonnes

  • Zone A : colonnes 8 à 11 (7 espaces pour divisions et déclarations).
  • Zone B : colonnes 12 à 72 (11 espaces pour instructions).

Dans ce code, PERFORM commence en zone B, et le bloc répété reste aligné.

Exemple minimal COBOL Format fixe
Télécharger le code
       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.

À retenir : END-PERFORM ferme la boucle de façon claire, exactement comme END-IF ferme un test. C’est une frontière visuelle et logique.

Votre micro-exercice

Faites ces 3 modifications :

  1. Changez la boucle pour aller de 2 à 10, de 2 en 2.
  2. Dans la boucle, affichez aussi un message “Tour en cours” avant la valeur.
  3. 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.

Conseil : testez de petites bornes (1 à 3) pendant la mise au point, puis élargissez. Vous voyez plus vite si la boucle fonctionne.