Apprendre COBOL – Les bases

EVALUATE

L'instruction EVALUATE est l'équivalent COBOL du switch / case présent dans la plupart des langages modernes. Elle permet de tester une variable (ou une expression) contre plusieurs valeurs ou conditions possibles et d'exécuter le bloc correspondant. Elle est souvent plus lisible et plus performante que de multiples IF imbriqués.

Exemple de code : Menu de choix avec note scolaire

IDENTIFICATION DIVISION.
PROGRAM-ID. EVALUATE-EXEMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  NOTE                  PIC 99      VALUE ZERO.
01  APPRECIATION          PIC X(30).

PROCEDURE DIVISION.
    DISPLAY "Entrez une note sur 20 (0-20) : ".
    ACCEPT NOTE.

    EVALUATE TRUE
        WHEN NOTE >= 16
            MOVE "Excellent !" TO APPRECIATION
        WHEN NOTE >= 14
            MOVE "Très bien" TO APPRECIATION
        WHEN NOTE >= 12
            MOVE "Bien" TO APPRECIATION
        WHEN NOTE >= 10
            MOVE "Assez bien" TO APPRECIATION
        WHEN NOTE >= 8
            MOVE "Passable" TO APPRECIATION
        WHEN OTHER
            MOVE "Insuffisant - Redoublement" TO APPRECIATION
    END-EVALUATE.

    DISPLAY "Note : " NOTE "/20".
    DISPLAY "Appréciation : " APPRECIATION.

    STOP RUN.
        
Télécharger le code

Résultat attendu à l'exécution (exemples)

Entrée : 17

Entrez une note sur 20 (0-20) : 
17
Note : 17/20
Appréciation : Excellent !
        

Entrée : 11

Entrez une note sur 20 (0-20) : 
11
Note : 11/20
Appréciation : Assez bien
        

Entrée : 6

Entrez une note sur 20 (0-20) : 
6
Note : 06/20
Appréciation : Insuffisant - Redoublement
        

Explication détaillée – focus sur EVALUATE

Avantages de EVALUATE par rapport à plusieurs IF :
• Plus lisible quand il y a 4 cas ou plus
• Évite les imbrications profondes
• Meilleure performance dans certains compilateurs
• Structure claire et maintenable

Prochain sujet : Boucles avec PERFORMUNTIL, VARYING et PERFORM paragraphe.