Index du tour guidé

Bienvenue dans la formation COBOL

Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.

Info : Ce module vous permet d’accéder rapidement aux contenus essentiels de la formation COBOL.
Retour au plan général
Navigation rapide
Utilisez ces boutons si vous voulez accéder directement à une page, sans parcourir les cartes.
1 2 3 4 5 6 7 8 9 10

Leçon 5 : conditions et branchements

Objectif : contrôler le flux d’exécution avec  IF ,  ELSE  et  EVALUATE , afin d’écrire des règles métier lisibles, fiables et faciles à faire évoluer.

Débutant Logique Exercices
🧭
Idée clé
Une condition n’est pas seulement “un test” : c’est une règle de décision. Avec  IF  vous gérez un choix simple, avec  EVALUATE  vous structurez une grille de décisions qui s’empile sans devenir illisible.
🧠

Conceptualiser

Flux

Trois outils suffisent pour structurer la plupart des règles métier de base :

 IF 
Décider : exécuter une branche si la condition est vraie.
🔀
 ELSE 
Alternative : que faire si la condition est fausse.
🧩
 EVALUATE 
Grille de décisions lisible (équivalent d’un switch/case), idéale quand les cas s’accumulent.
⚠️
Point d’attention
Comparez toujours des données de même nature : numérique avec numérique, texte avec texte. Sinon, vous obtenez des résultats inattendus.
🗺️ Mini-schéma mental
• Une décision simple :  IF  ELSE 
• Une échelle / une grille :  EVALUATE  avec plusieurs  WHEN 
🧪

Opérer

Contrôler le flux

Exemple complet : lecture d’une note, validation avec  IF , puis attribution d’une mention via  EVALUATE .

🧾Fichier : demo-if.cbl
Cobol (format libre)

 >>SOURCE FORMAT FREE
 IDENTIFICATION DIVISION.
 PROGRAM-ID. DEMO-IF.

 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 WS-NOTE PIC 9(2) VALUE 0.

 PROCEDURE DIVISION.
    DISPLAY "Entrez une note (0 a 20) : " WITH NO ADVANCING
    ACCEPT WS-NOTE

    IF WS-NOTE >= 10
        DISPLAY "Resultat : valide"
    ELSE
        DISPLAY "Resultat : non valide"
    END-IF

    EVALUATE TRUE
        WHEN WS-NOTE >= 16
            DISPLAY "Mention : tres bien"
        WHEN WS-NOTE >= 14
            DISPLAY "Mention : bien"
        WHEN WS-NOTE >= 12
            DISPLAY "Mention : assez bien"
        WHEN WS-NOTE >= 10
            DISPLAY "Mention : passable"
        WHEN OTHER
            DISPLAY "Mention : insuffisant"
    END-EVALUATE

    STOP RUN.
▶️ Compilation (exemple)
cobc -x -free demo-if.cbl
Exécutez ensuite le programme via votre environnement.
✅ Ce que vous validez
  • Test de seuil (>= 10)
  • Branche alternative
  • Grille de mentions
🧯

Déboguer

Erreurs typiques

Deux erreurs reviennent souvent en format libre : la nature des données et les fins de blocs.

  • Comparer du texte et du numérique sans conversion : vous obtenez des résultats inattendus.
  • Oublier  END-IF  ou  END-EVALUATE  en format libre : le compilateur “perd” la structure.
🔎 Astuce

Quand vous écrivez un bloc, terminez-le immédiatement avec  END-...  avant d’ajouter le contenu. Vous évitez ainsi les oublis.

🧭

Expliquer et explorer

Exercices

 EVALUATE  reste souvent plus lisible quand les règles métier s’empilent : vous pouvez ajouter des cas sans multiplier les  IF  imbriqués.

📌 Conseil de lisibilité
Pour des seuils, écrivez les cas du plus strict au plus large (ex. 16, puis 14, puis 12…). Le lecteur comprend immédiatement la logique.

🧩 Exercices (à faire tout de suite)

  1. Ajoutez un contrôle : si la note est > 20, affichez une erreur.
  2. Faites un  EVALUATE  sur une lettre (A/B/C/D).

    IF WS-NOTE > 20
        DISPLAY "Erreur : note hors borne"
    ELSE
        IF WS-NOTE >= 10
            DISPLAY "Resultat : valide"
        ELSE
            DISPLAY "Resultat : non valide"
        END-IF
    END-IF
💡 Le contrôle “hors borne” est placé avant la logique métier, pour éviter d’attribuer une mention à une valeur invalide.

 WORKING-STORAGE SECTION.
 01 WS-CODE PIC X VALUE SPACE.

 PROCEDURE DIVISION.
    DISPLAY "Entrez un code (A/B/C/D) : " WITH NO ADVANCING
    ACCEPT WS-CODE

    EVALUATE WS-CODE
        WHEN "A"
            DISPLAY "Niveau : excellent"
        WHEN "B"
            DISPLAY "Niveau : bon"
        WHEN "C"
            DISPLAY "Niveau : correct"
        WHEN "D"
            DISPLAY "Niveau : a ameliorer"
        WHEN OTHER
            DISPLAY "Code inconnu"
    END-EVALUATE

    STOP RUN.
⚠️ Pour éviter les surprises, saisissez des lettres en majuscules (ou normalisez la saisie si votre environnement le permet).

↑ Haut