Exercice 20 : if

Micro-exercice

Objectif : utiliser IF pour prendre une décision. C’est la base de la logique : “si la condition est vraie, alors on fait ceci, sinon on fait cela”. Vous allez saisir un nombre et afficher un message différent selon sa valeur.

Ce que vous pratiquez

  • Lire une valeur avec ACCEPT.
  • Comparer une valeur avec un seuil.
  • Utiliser IF / ELSE / END-IF.

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).

Les instructions du bloc IF sont alignées en zone B pour rester lisibles.

Exemple minimal COBOL Format fixe
Télécharger le code
       IDENTIFICATION DIVISION.
       PROGRAM-ID. EXO-IF-20.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-NOMBRE            PIC 99 VALUE 00.

       PROCEDURE DIVISION.
           DISPLAY "Entrez un nombre (00 a 99) : "
           ACCEPT WS-NOMBRE

           IF WS-NOMBRE >= 50
               DISPLAY "Nombre grand (>= 50)."
           ELSE
               DISPLAY "Nombre petit (< 50)."
           END-IF

           STOP RUN.

Lecture simple

IF WS-NOMBRE >= 50 teste une condition. Si c’est vrai, on affiche “grand”. Sinon, on passe dans ELSE et on affiche “petit”. END-IF ferme proprement le bloc.

À retenir : END-IF rend le code plus sûr, surtout quand vous avez plusieurs instructions dans chaque branche.

Votre micro-exercice

Faites ces 3 modifications :

  1. Ajoutez un second test : si le nombre est exactement 50, afficher “Pile 50”.
  2. Ajoutez un test : si le nombre est 00, afficher “Valeur nulle”.
  3. Affichez aussi la valeur saisie dans un message (ex : “Vous avez saisi : ...”).

Erreur fréquente à éviter

Comparer du texte et du numérique sans le vouloir. Ici, WS-NOMBRE est bien numérique (PIC 99), donc la comparaison est logique. Si vous aviez utilisé PIC X(2), vous feriez une comparaison “alphabetique” et pas un vrai test numérique.

Autre piège : oublier END-IF quand il y a plusieurs IF imbriqués. Le code devient ambigu, et vous perdez du temps en débogage.

Conseil : pour apprendre, faites des tests avec des valeurs “frontières” (49, 50, 51). Vous voyez immédiatement si votre condition est correcte.