Abfragen
6.1 IF-Abfrage:
6.1.1 Aufbau einer IF-Abfrage
Bevor wir uns den Aufbau einer IF-Abfrage ansehen, wollen wir erst einmal erfahren, was das überhaupt ist. Eine
IF-Abfrage stellt etwas in Frage. Ist die Bedingung, die gestellt wird, wahr, so wird/werden eine oder mehrere Anweisung(en)
ausgeführt. Also ist es in etwa wie bei der WHILE-Schleife, nur, dass diesmal keine Schleife vorliegt, sondern eine
Abfrage. Der große Unterschied ist hierbei nur, dass eine Schleife die Anweisungen so lange ausführt, bis die
Bedingung false ergibt. Eine Abfrage führt die Anweisungen nur einmal aus, und zwar nur dann, wenn die
Bedingung true ergibt. Ergibt sie false, so wird die Anweisung nicht ausgeführt und es wird dort der
Quelltext weiter durchgeführt, wo die Abfrage endet.
Nun zum Aufbau einer IF-Abfrage:
IF { Bedingung } THEN { Anweisung }
IF platz_belegt AND links_frei THEN BEGIN WHILE platz_belegt DO nimm_auf; drehe_links; vor; END;
So, jetzt haben wir also eine WENN-DANN-Abfrage geschaffen. Aber was ist mit dem SONST? Was, wenn die Bedingung nicht erfüllt ist? Ganz einfach: es passiert nichts. Es sei denn, man liest sich den nächsten Abschnitt durch!
IF-THEN-ELSE:
ELSE
Wie schon gesagt wollen wir auch ein SONST in unsere Abfrage einbauen. Das Grundgerüst sieht dabei so aus:
IF { Bedingung } THEN { Anweisung } ELSE { Anweisung2 }
IF platz_belegt AND links_frei THEN BEGIN WHILE platz_belegt DO nimm_auf; drehe_links; vor; END ELSE BEGIN WHILE vorne_frei DO vor; END;
6.2.2 Relevanz von ELSE
Wie schon gesagt, ELSE muss nicht gesetzt werden. Wird die Bedingung nicht erfüllt, wird sofort das ausgeführt, was hinter der Abfrage kommt. Ein Beispiel:
IF false THEN BEGIN WHILE platz_belegt DO nimm_auf; drehe_links; vor; END; vor;
IF platz_belegt AND links_frei THEN BEGIN WHILE platz_belegt DO nimm_auf; drehe_links; vor; END; IF NOT platz_belegt AND NOT links_frei THEN BEGIN WHILE vorne_frei DO vor; END;