Ja of nee?

Je kunt de computer dingen met elkaar laten vergelijken en dan verschillende dingen laten doen. Bijvoorbeeld:

 

program Beslissingen;

var
woord: String;

begin
Writeln('Wat heb je gisteren gegeten?');
Readln(woord);
if woord = 'spruitjes' then
Writeln('He lekker, spruitjes!')
else
Writeln('Oh, dat gerecht ken ik niet...');
end.
 

 

Wellicht kun je al een beetje raden wat hier gebeurd. Het statement if ... then...else stelt de computer in staat te bekijken wat er in de variabele woord staat, en dat te vergelijken met een andere waarde (in dit geval 'spruitjes'. Als dit overeenkomt dan (engels: then) voert hij het ene statement uit, anders (engels: else) het andere. Dus als je het als geheel vertaalt, staat er: "als dit, doe dan: <statement> anders doe <statement>;"

Misschien viel het je op dat achter het statement Writeln('He lekker, spruitjes!') geen puntkomma staat, en achter Writeln('Oh, dat gerecht ken ik niet...'); weer wel. Dat komt, omdat volgens de regels van PASCAL het statemen het totaal is, vanaf if tot en met het statement dat volgt op else. Daar staat dan dus ook weer een puntkomma achter. Het lijkt wat overdreven om dat zo uitgebreid uit te leggen. Maar zet je een puntkomma achter bijvoorbeeld Writeln('He lekker, spruitjes!'), dan zal de compiler dat beschouwen als het einde van dat statement, en dus geen idee meer hebben wat te doen met else!

Overigens is het else gedeelte optioneel: je hoeft het niet te gebruiken. Je kunt ook zeggen:

 9:  if woord = 'spruitjes' then
10: Writeln('He lekker, spruitjes!'); 

Als het woord dat de gebruiker heeft ingetyped niet gelijk is aan 'spruitjes', zal de computer niets doen, en eenvoudig met het volgende statement verder gaan.

Let op: nu staat er dus wel een puntkomma achter!

Oefening: Maak een programma, dat om de naam van de gebruiker vraagt. Als de naam gelijk is aan een bepaalde naam, moet het zeggen: "<Naam>: dat is een mooie naam!" en anders: "hmmm... <Naam> vind ik niet zo mooi... sorry!"