Java Reference
In-Depth Information
zum zweiten if gehört. Dieses ist jedoch in der Hamster-Sprache eindeutig definiert: In geschach-
telten Auswahlanweisungen gehört ein else-Teil immer zum innersten if .
In Beispiel 4a bildet der else-Teil also den else-Teil der kornDa() - und nicht der vornFrei() -
Bedingung. Die Anweisung in Beispiel 4a ist eine bedingte Anweisung, deren true-Anweisung durch
eine Alternativanweisung gebildet wird. Ist die Kachel vor demHamster blockiert, d.h. der boolesche
Ausdruck vornFrei() liefert denWert false , dann ist das Beispiel beendet. Wird dagegen der Wert
true ermittelt, dann wird die (innere) Alternativanweisung ausgeführt.
Soll der else-Teil nicht zum inneren, sondern zu einem äußeren if gehören, so müssen Klammern
verwendet werden, wie in Beispiel 4b. Die Anweisung in Beispiel 4b ist eine Alternativanweisung,
deren true-Anweisung aus einer Blockanweisung besteht, die eine bedingte Anweisung enthält.
Um Missverständnissen bzw. Fehlern vorzubeugen, sollten Sie, wie bereits gesagt, auch bei den Al-
ternativanweisungen die true- und false-Anweisung jeweils durch eine Blockanweisung „kapseln“.
Nutzen Sie also anstelle der verkürzten Schreibweise in Beispiel 4a möglichst die etwas längere
dafür aber „sicherere“ Schreibweise von Beispiel 4c. Achten Sie auch auf eine übersichtliche Ein-
rückung der entsprechenden Teile entsprechend der Gestaltungskonventionen.
9.7 Beispielprogramme
In diesem Abschnitt werden einige Beispiele für Hamster-Aufgaben gegeben, die nur durch den
Einsatz von Auswahlanweisungen gelöst werden können. Schauen Sie sich die Beispiele genau an
und versuchen Sie, die Lösungen nachzuvollziehen.
9.7.1 Beispielprogramm 1
Aufgabe:
Gegeben sei das Hamster-Territorium in Abbildung 9.10. Der Hamster soll genau zwei Körner ein-
sammeln.
Abbildung 9.10: Hamster-Landschaft zu Beispielprogramm 1
Lösung 1:
Bei dieser Lösung überprüft der Hamster nicht, ob er bereits in der Ausgangsstellung auf einem
Kornfeld steht.
 
Search WWH ::




Custom Search