Passer au contenu principal
eLearner.app
Module 2 · Leçon 2 sur 24/10 dans le cours~12 min
Leçons du module (2/2)

Décisions avec IF et EVALUATE

La gestion des choix en COBOL s’effectue principalement via l’instruction conditionnelle IF et la structure de sélection multiple EVALUATE (analogue au switch ou au match dans les langages modernes).

L’instruction conditionnelle IF

La syntaxe fondamentale de l’instruction IF est :

Code
IF condition
    instructions-si-vrai
ELSE
    instructions-si-faux
END-IF.

Dans les versions modernes de COBOL (COBOL-85 et ultérieures), l’instruction doit se terminer explicitement par END-IF. plutôt que de s’appuyer uniquement sur le point final ., réduisant considérablement les erreurs d’analyse (parsing) et de logique.

Conditions communes

  • Supérieur à : > ou GREATER THAN
  • Inférieur à : < ou LESS THAN
  • Égal à : = ou EQUAL TO
  • Supérieur ou égal : >= ou GREATER THAN OR EQUAL TO
  • Inférieur ou égal : <= ou LESS THAN OR EQUAL TO
Code
IF WS-BALANCE < 0
    DISPLAY "CONTO IN ROSSO"
ELSE
    DISPLAY "CONTO ATTIVO"
END-IF.

L’instruction EVALUATE

Lorsque nous devons comparer une variable avec de multiples valeurs discrètes, l’utilisation de nombreux IF imbriqués peut devenir complexe. L’instruction EVALUATE résout ce problème en structurant les choix de manière ordonnée :

Code
EVALUATE WS-USER-ROLE
    WHEN "ADMIN"
        DISPLAY "ACCESSO COMPLETO"
    WHEN "EDITOR"
        DISPLAY "ACCESSO EDIT"
    WHEN OTHER
        DISPLAY "ACCESSO LIMITATO"
END-EVALUATE.
  • WHEN OTHER : Identifie la branche de repli (l’équivalent du default ou du else final).
  • END-EVALUATE. : Conclut la structure.

À vous de jouer

Exercice#cobol.m2.l2.e1
Tentatives : 0Chargement…

Écrivez un bloc IF-ELSE-END-IF qui vérifie si la variable WS-USER-AGE est supérieure ou égale à 18. En cas de succès, affichez 'ADULT', sinon affichez 'MINOR' en utilisant DISPLAY.

Chargement de l'éditeur…
Afficher l'indice

Utilisez >= pour la comparaison, DISPLAY pour la sortie, et enfin END-IF. (avec le point à la fin du bloc).

Solution disponible après 3 tentatives

Exercice#cobol.m2.l2.e2
Tentatives : 0Chargement…

Complétez la structure EVALUATE pour vérifier la variable WS-STATUS. Si la valeur est 'A', affichez 'ACTIVE', si elle est 'I', affichez 'INACTIVE', sinon pour toute autre valeur, affichez 'UNKNOWN'.

Chargement de l'éditeur…
Afficher l'indice

Écrivez les branches WHEN individuelles suivies du DISPLAY correspondant, et utilisez WHEN OTHER pour gérer le cas par défaut.

Solution disponible après 3 tentatives