Lektionen des Moduls (2/2)
Entscheidungen mit IF und EVALUATE
Die Entscheidungsfindung in COBOL erfolgt hauptsächlich über die bedingte Anweisung IF und die Mehrfachauswahlstruktur EVALUATE (analog zu switch oder match in modernen Sprachen).
Die bedingte Anweisung IF
Die grundlegende Syntax der Anweisung IF lautet:
IF bedingung
anweisungen-wenn-wahr
ELSE
anweisungen-wenn-falsch
END-IF.
In modernen Versionen von COBOL (COBOL-85 und höher) muss die Anweisung explizit mit END-IF. enden, anstatt sich ausschließlich auf den Endpunkt . zu verlassen, was Parsing- und Logikfehler erheblich reduziert.
Häufige Bedingungen
- Größer als:
>oderGREATER THAN - Kleiner als:
<oderLESS THAN - Gleich:
=oderEQUAL TO - Größer oder gleich:
>=oderGREATER THAN OR EQUAL TO - Kleiner oder gleich:
<=oderLESS THAN OR EQUAL TO
IF WS-BALANCE < 0
DISPLAY "CONTO IN ROSSO"
ELSE
DISPLAY "CONTO ATTIVO"
END-IF.
Die EVALUATE-Anweisung
Wenn wir eine Variable mit mehreren diskreten Werten vergleichen müssen, kann die Verwendung mehrerer geschachtelter IFs komplex werden. Die Anweisung EVALUATE löst dieses Problem, indem sie die Auswahlmöglichkeiten geordnet strukturiert:
EVALUATE WS-USER-ROLE
WHEN "ADMIN"
DISPLAY "ACCESSO COMPLETO"
WHEN "EDITOR"
DISPLAY "ACCESSO EDIT"
WHEN OTHER
DISPLAY "ACCESSO LIMITATO"
END-EVALUATE.
WHEN OTHER: Identifiziert den Fallback-Zweig (entspricht demdefaultoder dem abschließendenelse).END-EVALUATE.: Schließt die Struktur ab.
Probier es selbst aus
Schreiben Sie einen IF-ELSE-END-IF-Block, der prüft, ob die Variable WS-USER-AGE größer oder gleich 18 ist. Wenn ja, geben Sie 'ADULT' aus, andernfalls geben Sie 'MINOR' mit DISPLAY aus.
Hinweis anzeigen
Verwenden Sie >= für den Vergleich, DISPLAY für die Ausgabe und schließlich END-IF. (mit dem Punkt am Ende des Blocks).
Lösung nach 3 Versuchen verfügbar
Vervollständigen Sie die EVALUATE-Struktur, um die Variable WS-STATUS zu überprüfen. Wenn der Wert 'A' ist, geben Sie 'ACTIVE' aus, wenn er 'I' ist, geben Sie 'INACTIVE' aus, andernfalls geben Sie für jeden anderen Wert 'UNKNOWN' aus.
Hinweis anzeigen
Schreiben Sie die einzelnen WHEN-Zweige gefolgt vom entsprechenden DISPLAY und verwenden Sie WHEN OTHER, um den Fallback zu verwalten.
Lösung nach 3 Versuchen verfügbar