Apprendre COBOL – Les bases

IF / ELSE

L'instruction IF permet d'exécuter du code de façon conditionnelle selon qu'une condition est vraie (TRUE) ou fausse. Elle est souvent combinée avec ELSE pour gérer le cas contraire. En COBOL, les conditions utilisent des opérateurs de comparaison (=, >, <, NOT, AND, OR) et peuvent tester des variables numériques, alphanumériques ou des classes (NUMERIC, ALPHABETIC…).

Exemple de code : Contrôle d'âge pour un accès

IDENTIFICATION DIVISION.
PROGRAM-ID. CONDITION-IF-ELSE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  AGE                   PIC 99      VALUE 00.
01  MANQUANT              PIC 99      VALUE 00.
01  MESSAGE-ACCES         PIC X(40)   VALUE SPACES.

PROCEDURE DIVISION.
    DISPLAY "Entrez votre âge : ".
    ACCEPT AGE.

    IF AGE >= 18
        MOVE "Accès autorisé - Bienvenue !" TO MESSAGE-ACCES
        DISPLAY MESSAGE-ACCES
    ELSE
        MOVE "Accès refusé - Vous êtes mineur." TO MESSAGE-ACCES
        DISPLAY MESSAGE-ACCES

        COMPUTE MANQUANT = 18 - AGE

        DISPLAY "Il vous manque " WITH NO ADVANCING
        DISPLAY MANQUANT WITH NO ADVANCING
        DISPLAY " an(s)."
    END-IF

    DISPLAY "Fin du programme."
    STOP RUN.

        
Télécharger le code

Résultat attendu à l'exécution (deux cas possibles)

Cas 1 – Âge ≥ 18 :

Entrez votre âge : 
21
Accès autorisé - Bienvenue !
Fin du programme.
        

Cas 2 – Âge < 18 :

Entrez votre âge : 
15
Accès refusé - Vous êtes mineur.
Il vous manque 3 an(s).
Fin du programme.
        

Explication détaillée – focus sur IF / ELSE

Points clés pour débutants :
• Toujours terminer par END-IF.
• On peut imbriquer des IF dans d’autres IF (mais attention à la lisibilité).
• Pour tester plusieurs conditions : IF condition1 AND condition2 ou OR.
WITH NO ADVANCING évite le saut de ligne après DISPLAY (utile pour coller du texte).

Prochain sujet : EVALUATE (le « switch/case » de COBOL) et les conditions composées avancées.