10.4 Verkorten van een relatieconditie

Een van de vier vormen van condities die COBOL kent, is de relatieconditie. In een relatieconditie staat een vergelijkingsteken, zoals >, NOT =, <=. Links en rechts van het vergelijkingsteken staat een variabele, een constante of een formule.

We kunnen ingewikkelder voorwaarden samenstellen door enkelvoudige vormen te combineren. Dat gebeurt met and en or. Een voorbeeld van een conditie met or:

maand = 4 or maand = 6 or maand = 9 or maand = 11
  

COBOL biedt een aangename mogelijkheid om zo'n lange reeks te verkorten. Bekijk daartoe het vergelijkingsteken en datgene wat er links van staat. In de samengestelde conditie hierboven is het vergelijkingsteken steeds is-gelijk. Links van het is-gelijk-teken staat steeds de variabele maand. Een identiek stukje hoeven we niet te herhalen:

maand = 4 or 6 or 9 or 11
  

Als het vergelijkingsteken niet gelijk is dan mogen we dat uiteraard niet weglaten. De conditie

maandnummer < 1 or maandnummer > 12

kunnen we verkorten door de variabele maandnummer weg te laten:

maandnummer < 1 or > 12
  

Verkorten is niet toegestaan als in het gedeelte een of meer haakjes voorkomen. In de conditie

maandnu < gebmaand or (maandnu = gebmaand and dagnu < gebdag)
  

Mogen we maandnu de tweede keer niet weglaten. Door middel van de haakjes geven we immers aan dat de computer dat gedeelte eerst moet doen. De computer snapt niets er van als het gedeelte tussen de haakjes begint met een halve voorwaarde.

Verkorten is alleen toegestaan bij relatie-voorwaarden. Niet bij andere voorwaarden, zoals de klassevoorwaarde. In de volgende opdracht mogen we geen verkorting toepassen!

if lengte numeric and lengte > 200 then
  

Het eerste deel van de voorwaarde is een klassevoorwaarde en hoewel in het tweede deel van de voorwaarde dezelfde variabele (lengte) voorkomt, mogen we die naam daar niet weglaten.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo