Programmeren in PL/1/Programmastructuur
Voorwaardelijke constructies
bewerkenPL/1-code: voorwaardelijke constructies
IF a = b THEN c = d; IF a > b THEN c = d; ELSE c = e; SELECT; WHEN (a < 10) c = 1; WHEN (a = 10) c = 2; OTHER c = 3; END;
PL/1-code: meerdere voorwaardelijk uit te voeren statements
IF a > b THEN DO; p = q; r = s; END;
Lussen
bewerkenPL/1-code: lus
DO k = 1 TO 5; ... END;
In bovenstaand voorbeeld neemt k de waarden 1, 2, 3, 4 en 5 aan. En worden de statements (...) ook 5 keer uitgevoerd. Bij het verlaten van de lus heeft k de waarde 6 (!) gekregen.
PL/1-code: lussen
DO k = 1 TO n by 2; ... END; DO k = 20 TO 1 by -1; ... END;
PL/1-code: meerdere waardengebieden
DO k = 1 to 5, 10 to 30 by 5, 40 to 100 by 20; ... END;
k neemt waarden 1, 2, 3, 4, 5 en 10, 15, 20, 25, 30 en 40, 60, 80, 100.
voorwaardelijke lussen
bewerkenOnderstaande lus wordt nul of meer keer uitgevoerd.
PL/1-code: voorwaardelijke lus met test vooraf
DO WHILE (a > b); ... END;
Onderstaande lus wordt zeker één keer uitgevoerd.
PL/1-code: voorwaardelijke lus met test achteraf
DO UNTIL (a > b); ... END;
De herhaalde waarden kunnen ook het resultaat zijn van een berekening.
PL/1-code: machten van 2
DO k = 1 REPEAT 2*k UNTIL (k > 100);
In bovenstaand geval krijgt k de waarden 1, 2, 4, 8, 16, 32, 64, 128.
REPEAT kan gebruikt worden om een gelinkte lijst af te lopen.
PL/1-code: gelinkte lijst
DO NEXT = head REPEAT NEXT > link UNTIL (link = NULL);
Invoer/uitvoer
bewerkenPL/1-code: invoer & uitvoer
PUT LIST('Boodschap aan de mensheid!'); PUT SKIP LIST('Hello world!');
In de tweede lijn zorgt SKIP ervoor dat de afdruk met een nieuwe lijn begint.