Keuzes maken
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
TP kent twee mogelijkheden voor het maken van keuzes. De eerste is de If...Then...Else-constructie. Variaties zijn hierin mogelijk door Else weg te laten en door het gebruik van programma-blokken. Bijvoorbeeld:
f X > 10 Then
Writeln('X is groter dan 10')
Else
Begin
Writeln('X is kleiner dan 10');
Writeln('of X is 10')
End;
Een ; is hier niet nodig aan het einde van een programma-blok. Het mag wel, maar het voegt niets toe. Waar in C de ; een afsluiting van een statement is, is het in Pascal een scheiding tussen statements.
Een tweede mogelijkheid die TP biedt is Case en dat ziet er zo uit:
Case A Of
'a'..'z': Writeln('kleine letter');
'A', 'B': Writeln('A of B');
'C'..'Z': Writeln('hoofdletter')
Else
Writeln('Geen letter')
End;
Hier zit een aardigheid in, die sterk afwijkt van C en meer lijkt op Rust. Ten eerste kent Pascal geen fall through zoals C. Een optie wordt afgehandeld en daarna is het Case-statement voorbij. In C worden volgende opties gewoon uitgevoerd, tenzij je uit het statement gaat via een break.
De compiler weigert in Pascal, net als in Rust, als meerdere opties overlappen. Dit kan dus wel in C, maar niet in Pascal:
Case A of
'a'..'z': Writeln('kleine letter');
'A', 'B': Writeln('A of B');
'A'..'Z': Writeln('hoofdletter')
Else
Writeln('Geen letter')
End;
Maar Pascal is iets minder streng dan Rust. Als niet alle mogelijke opties zijn afgedekt, weigert Rust de compilatie. Pascal maakt er geen probleem van tijdens compileren en tijdens runtime evenmin. Dit kan niet in Rust, maar werkt in Pascal zonder probleem:
Case A of
'a'..'z': Writeln('kleine letter');
'A', 'B': Writeln('A of B');
'C'..'Z': Writeln('hoofdletter')
End;
Tot slot: Case werkt in Pascal op alle ordinale types, dus ook op integers, booleans et cetera.
Gerelateerd
Bestanden in DOS
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
De diepte in met functies en procedures
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
Gestructureerde data
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
Een softwaremuseum
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
De basisstructuur
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
