#Klooienmetcomputers

Herhalingen

Arnout van Kempen over rommelen in een digitale wereld.

Net als in andere talen kunnen we in COBOL een bepaald codeblock meermaals herhalen. In C deden we dat met
for(int x=0;x<=10;x++){ codeblock };

In COBOL doen we precies hetzelfde met recursie:

PERFORM 1-TOT-10.
STOP RUN.

1-TOT-10.
     IF x <= 10
          PERFORM codeblock
          ADD 1 TO X
          PERFORM 1-TOT-10
     END-IF.

Maar COBOL kent ook een simpeler variant, die weliswaar minder flexibel is:

PERFORM 10 TIMES
     PERFORM codeblock
END-PERFORM

We missen nu toegang tot de teller, zoals in C en in de eerste COBOL-variant, maar als we die toegang niet nodig hebben, is de laatste versie eigenlijk veel leesbaarder. 

Met PERFORM kunnen we nog wat complexere herhalingen bouwen. Bijvoorbeeld 

PERFORM UNTIL conditie zal herhalen tot aan de conditie wordt voldaan. En

PERFORM VARYING x FROM 1 BY 1 UNTIL conditie doet hetzelfde, maar laat de variabele x meelopen met een startwaarde en een waarde die bij iedere herhaling daarbij wordt opgeteld. Dit zit al erg in de buurt van het for-statement in C.

Hiermee hebben we de belangrijkste elementen van COBOL besproken. Voor wie er echt dieper in wil duiken zijn er nog geavanceerdere onderwerpen, zoals databases, modulair programmeren, en meer van dat fraais te ontdekken. Maar met wat we nu behandeld hebben, kom je een heel eind in het begrijpen van de basisstructuur van een COBOL-programma.

Wie mee wil doen met #klooienmetcomputers kan dat doen via GitHub. Maak een account op github.com en zoek naar Abmvk/kmc. Het account Abmvk volgen kan ook. Lezers zijn vrij te gebruiken wat ze willen en om zelf zaken toe te voegen of aan te passen, vragen te stellen of commentaar te leveren.

Arnout van Kempen di CCO CISA is directeur compliance & risk bij aaff, de fusieorganisatie van Alfa en ABAB. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.