Fachkonzept
Fachkonzept - Bedingung
Der Aufruf der Sensoren die du in den Übungen kennengelernt hast, erfolgte nach dem bekannten Muster argo.operation()
,
Damit testet z.B. argo.rockFront()
, ob die Argo vor einem Asteroid steht.
Das Ergebnis eines solchen Tests ist einer der beiden Wahrheitswerte True
(wahr) oder False
(falsch),
mit dem angegeben wird, ob die Bedingung argo.rockFront()
erfüllt ist oder nicht.
Die Steuerung komplexerer Abläufe (wie Fallunterscheidungen und Wiederholungen) erfolgt mit Hilfe von
Bedingungen. Eine Bedingung gibt immer einen der beiden Wahrheitswerte (True
oder False
) zurück.
Fachkonzept - Fallunterscheidung
Müssen zur Steuerung der Argo verschiedene Fälle unterschieden werden, können diese mit Hilfe von Fallunterscheidungen bearbeitet werden.
WENN auf einem Power-up: # Fall 1 Power-up aufheben ... SONST: Sektor weiterfliegen. # Fall 2
Eine Fallunterscheidung dient dazu, alternative Abläufe zu beschreiben.
Zweiseitige Fallunterscheidung
Fallunterscheidungen können sowohl zweiseitig als auch einseitig sein. Eine zweiseitige Fallunterscheidung wird mit einer WENN-Anweisung beschrieben, die aus einer Bedingung und zwei (verschiedenen) Anweisungssequenzen besteht. Abhängig davon welcher Fall eintritt, wird die entsprechende Anweisungssequenz ausgeführt.
Die Ausführung einer zweiseitigen Fallunterscheidung lässt sich mit dem einem Flussdiagramm verdeutlichen:
Die Struktur einer solchen zweiseitigen Fallunterscheidung beschreibt man auch oft mit einem Struktogramm:
Einseitige Fallunterscheidung
Eine einseitige Fallunterscheidung wird mit einer WENN-Anweisung beschrieben, die aus einer Bedingung und nur einer Anweisungssequenz besteht. Ist die Bedingung nicht erfüllt, so wird die Anweisungsequenz der Fallunterscheidung nicht ausgeführt.
if [Bedingung]: [Anweisungssequenz]
Die Ausführung einer einseitigen Fallunterscheidung lässt sich mit dem folgenden Flussdiagramm verdeutlichen:
Das Struktogramm zu dieser Fallunterscheidungsvariante sieht so aus: