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:
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:
>sauGREATER THAN - Mai puțin de:
<sauLESS THAN - Egal cu:
=sauEQUAL TO - Mai mare sau egal cu:
>=sauGREATER THAN OR EQUAL TO - Mai mic sau egal cu:
<=sauLESS THAN OR EQUAL TO
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:
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 cudefaultsau cuelsefinală în limbile moderne).END-EVALUATE.: Închide structura.
Încercați-l singur
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.
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
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”.
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