Java Reference
In-Depth Information
Abbildung 10.3: Ausführung von Beispiel 1
Zunächst wird der Testbefehl vornFrei() ausgewertet. Er liefert den Wert true . Also ist die Schlei-
fenbedingung erfüllt. D.h. als nächstes wird die Iterationsanweisung ausgeführt. Dieses ist eine
Blockanweisung, die als einzige Anweisung den Befehl vor(); enthält. Der Hamster hüpft eine
Kachel nach vorne (siehe Abbildung 10.3 (Mitte)). Nach der Abarbeitung der Iterationsanweisung
wird erneut die Schleifenbedingung überprüft. Der Testbefehl vornFrei() liefert auch dieses Mal
den Wert true , sodass der vor(); -Befehl ein zweites Mal ausgeführt wird und sich die Situati-
on gemäß Abbildung 10.3 (rechts) ergibt. Wiederum wird nun die Schleifenbedingung überprüft.
Inzwischen steht der Hamster jedoch vor einer Mauer, sodass der Testbefehl vornFrei() diesmal
den Wert false liefert. Damit ist die while-Anweisung und - weil dies die einzige Anweisung des
Hamster-Programms war - auch das gesamte Hamster-Programm beendet.
Auf dieselbe Art und Weise lässt sich verifizieren, dass das Programm auch für die Landschaft in
Abbildung 10.1 (rechts) korrekt arbeitet. Kontrollieren Sie dies bitte selbst.
10.2.5.2 Beispiel 2
Hamster-Aufgabe Der Hamster befindet sich auf einer beliebigen Kachel in einem rechteckigen
durch Mauern abgeschlossenen ansonsten aber mauerlosen Hamster-Territorium unbekannter (aber
endlicher) Größe. Er bekommt die Aufgabe, in irgendeine Ecke zu laufen und dort anzuhalten. Ab-
bildung 10.4 enthält einige Beispiellandschaften für den skizzierten Landschaftstyp.
Abbildung 10.4: Typische Hamster-Landschaften zu Beispiel 2 und 3
Lösungsidee Der Hamster läuft bis zur nächsten Wand in Blickrichtung vor ihm, dreht sich um 90
Grad nach links und läuft erneut bis zur nächsten Wand in Blickrichtung vor ihm.
 
Search WWH ::




Custom Search