Direkt zum Hauptinhalt springen
eLearner.app
Modul 2 · Lektion 2 von 24/10 im Kurs~12 min
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:

Code
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: > oder GREATER THAN
  • Kleiner als: < oder LESS THAN
  • Gleich: = oder EQUAL TO
  • Größer oder gleich: >= oder GREATER THAN OR EQUAL TO
  • Kleiner oder gleich: <= oder LESS THAN OR EQUAL TO
Code
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:

Code
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 dem default oder dem abschließenden else).
  • END-EVALUATE.: Schließt die Struktur ab.

Probier es selbst aus

Übung#cobol.m2.l2.e1
Versuche: 0Wird geladen…

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.

Editor wird geladen…
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

Übung#cobol.m2.l2.e2
Versuche: 0Wird geladen…

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.

Editor wird geladen…
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