Direct naar de hoofdinhoud
Module 2 · Les 2 van 24/10 in de cursus~12 min
Modulelessen (2/2)

Beslissingen met IF en EVALUATE

De besluitvorming in COBOL wordt voornamelijk uitgevoerd met behulp van de voorwaardelijke instructie IF en de meervoudige selectiestructuur EVALUATE (analoog aan switch of match in moderne talen).

De IF voorwaardelijke verklaring

De fundamentele syntaxis van de instructie IF is:

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

In moderne COBOL-versies (COBOL-85 en hoger) moet de instructie expliciet eindigen met END-IF. in plaats van uitsluitend te vertrouwen op de laatste punt ., waardoor parseer- en logische fouten aanzienlijk worden verminderd.

Algemene voorwaarden

  • Groter dan: > of GREATER THAN
  • Minder dan: < of LESS THAN
  • Gelijk aan: = of EQUAL TO
  • Groter dan of gelijk aan: >= of GREATER THAN OR EQUAL TO
  • Kleiner dan of gelijk aan: <= of LESS THAN OR EQUAL TO
COBOL
IF WS-BALANCE < 0
    DISPLAY "OVERDRAWN"
ELSE
    DISPLAY "ACCOUNT ACTIVE"
END-IF.

De EVALUATE-verklaring

Wanneer we een variabele moeten vergelijken met meerdere afzonderlijke waarden, kunnen geneste IF-instructies complex worden. De instructie EVALUATE lost dit op door de keuzes op een overzichtelijke manier te structureren:

COBOL
EVALUATE WS-USER-ROLE
    WHEN "ADMIN"
        DISPLAY "FULL ACCESS"
    WHEN "EDITOR"
        DISPLAY "EDIT ACCESS"
    WHEN OTHER
        DISPLAY "LIMITED ACCESS"
END-EVALUATE.
  • WHEN OTHER: Identificeert de fallback-vertakking (equivalent aan default of de laatste else in moderne talen).
  • END-EVALUATE.: Sluit de structuur.

Probeer het zelf

Oefening#cobol.m2.l2.e1
Pogingen: 0Laden…

Schrijf een IF-ELSE-END-IF blok dat controleert of de variabele WS-USER-AGE groter is dan of gelijk is aan 18. Indien waar, druk dan 'ADULT' af, druk anders 'MINOR' af met behulp van DISPLAY.

Editor laden…
Toon hint

Gebruik >= voor de vergelijking, DISPLAY voor uitvoer en END-IF. (met de punt aan het einde van het blok).

Oplossing beschikbaar na 3 pogingen

Oefening#cobol.m2.l2.e2
Pogingen: 0Laden…

Voltooi de EVALUATE-structuur om de WS-STATUS-variabele te controleren. Als de waarde 'A' is, drukt u 'ACTIEF' af, als het 'I' is, drukt u 'INACTIEF' af, anders drukt u voor elke andere waarde 'ONBEKEND' af.

Editor laden…
Toon hint

Schrijf elke WHEN-vertakking gevolgd door zijn DISPLAY, en gebruik WHEN OTHER om de terugval af te handelen.

Oplossing beschikbaar na 3 pogingen