Voorwaardenamen zijn een handig hulpmiddel om condities kort op te schrijven. Een veel voorkomend gebruik van de voorwaardenaam zien we in zogenaamde wissels. Bij de spoorwegen bepaalt de stand van een wissel welke kant de trein opgaat.
onthoud
In COBOL is een wissel (Engels: switch, indicator) een veld dat als het ware in twee standen kan staan. Bij het nemen van beslissingen kijken we in welke stand de wissel staat.
Een wissel kwam voor in het programma volgende-dag (zie paragraaf 3.15). Daar was een veld met de naam datum-ok-wissel. We begonnen met de waarde "J" naar dat veld te brengen. Als er bij het controleren van de datum een fout werd geconstateerd, dan gaven we aan de wissel de waarde "N". De herhalingsstructuur waarin invoer en controle plaatsvonden, werd net zolang herhaald totdat datum-ok-wissel gelijk bleef aan "J" Hier volgt nog eens dat gedeelte uit het programma:
Perform with test after until datum-ok-wissel = "J" perform vraag-een-datum move "J" to datum-ok-wissel if invoer-datum not numeric then display "Datum is niet numeriek" move "N" to datum-ok-wissel else perform controleer-datum * bij een geconstateerde fout komt er een foutboodschap * op het scherm en wordt datum-ok-wissel gelijk aan "N" end-if end-perform
De twee standen van een wissel kunnen we duidelijk aangeven met behulp van voorwaardenamen. Elke stand beschrijven we op een 88-level.
01 datum-ok-wissel picture X. 88 datum-ok value "J". 88 datum-niet-ok value "N".
De perform-opdracht kunnen we dan 'mooier' schrijven als:
Perform with test after until datum-ok
COBOL heeft nog meer fraais. Ook bij het 'zetten' van een wissel (het geven van een waarde aan een veld dat we als wissel gebruiken) kunnen we de voorwaardenaam gebruiken. In plaats van:
move "N" to datum-ok-wissel
mogen we schrijven:
set datum-niet-ok to true
De set-opdracht zou je kunnen vertalen met: zet de wissel in de stand datum-niet-ok. Dat doet de computer door de waarde "N" over te brengen naar de variabele datum-ok-wissel.
Er bestaat geen set-opdracht met het woord false, om een wissel de andere kant op te zetten. De computer kan immers niet weten dat wij "J" het tegenovergestelde van "N" vinden. De Engelsen zullen "Y" als het tegenovergestelde van "N" zien.
Je mag wel schrijven:
set datum-ok to true
Daarmee laat je de computer de waarde "J" te geven aan het veld datum-ok-wissel, want de voorwaardenaam datum-ok is verbonden met de waarde "J".