Salt la conținutul principal
Modulul 2 · Lecția 2 din 24/10 în curs~12 min
Lecții din modul (2/2)

Decizii cu IF și EVALUATE

Luarea deciziilor în COBOL se realizează în principal utilizând instrucțiunea condiționată IF și structura de selecție cu mai multe ramuri EVALUATE (analog cu switch sau match în limbile moderne).

Declarația condițională IF

Sintaxa fundamentală a instrucțiunii IF este:

COBOL
IF condition
    statements-if-true
ELSE
    statements-if-false
END-IF.

În versiunile COBOL moderne (COBOL-85 și ulterioare), instrucțiunea trebuie să se termine în mod explicit cu END-IF. în loc să se bazeze doar pe perioada finală ., reducând semnificativ erorile de analiză și de logică.

Condiții comune

  • Mai mare decât: > sau GREATER THAN
  • Mai puțin de: < sau LESS THAN
  • Egal cu: = sau EQUAL TO
  • Mai mare sau egal cu: >= sau GREATER THAN OR EQUAL TO
  • Mai mic sau egal cu: <= sau LESS THAN OR EQUAL TO
COBOL
IF WS-BALANCE < 0
    DISPLAY "OVERDRAWN"
ELSE
    DISPLAY "ACCOUNT ACTIVE"
END-IF.

Declarația EVALUATE

Când trebuie să comparăm o variabilă cu mai multe valori discrete, instrucțiunile imbricate IF pot deveni complexe. Declarația EVALUATE rezolvă acest lucru prin structurarea alegerilor într-un mod curat:

COBOL
EVALUATE WS-USER-ROLE
    WHEN "ADMIN"
        DISPLAY "FULL ACCESS"
    WHEN "EDITOR"
        DISPLAY "EDIT ACCESS"
    WHEN OTHER
        DISPLAY "LIMITED ACCESS"
END-EVALUATE.
  • WHEN OTHER: identifică ramura de rezervă (echivalent cu default sau cu else finală în limbile moderne).
  • END-EVALUATE.: Închide structura.

Încercați-l singur

Exercițiu#cobol.m2.l2.e1
Încercări: 0Se încarcă…

Scrieți un bloc IF-ELSE-END-IF care verifică dacă variabila WS-USER-AGE este mai mare sau egală cu 18. Dacă este adevărat, imprimați „ADULT”, în caz contrar, tipăriți „MINOR” folosind DISPLAY.

Se încarcă editorul...
Afișează indiciu

Utilizați >= pentru comparație, DISPLAY pentru ieșire și END-IF. (cu punctul de la capătul blocului).

Soluție disponibilă după 3 încercări

Exercițiu#cobol.m2.l2.e2
Încercări: 0Se încarcă…

Completați structura EVALUATE pentru a verifica variabila WS-STATUS. Dacă valoarea este „A” tipăriți „ACTIV”, dacă este „I” tipăriți „INACTIV”, în caz contrar, pentru orice altă valoare, tipăriți „NECUNOSCUT”.

Se încarcă editorul...
Afișează indiciu

Scrieți fiecare ramură WHEN urmată de DISPLAY-ul ei și utilizați WHEN OTHER pentru a gestiona alternativa.

Soluție disponibilă după 3 încercări