Java Reference
In-Depth Information
Programm
void main() {
// laufe bis zur naechsten Wand
while (vornFrei()) {
vor();
}
// drehe dich um 90 Grad nach links
linksUm();
// laufe erneut bis zur naechsten Wand
while (vornFrei()) {
vor();
}
}
Test Testen wir das Programm einmal für die Landschaft in Abbildung 10.4 (links) (siehe auch
Abbildung 10.5 (a)). Die Schleifenbedingung der ersten while-Anweisung wird insgesamt viermal
überprüft. Die ersten drei Male liefert sie den Wert true , d.h. der vor(); -Befehl innerhalb der
Iterationsanweisung wird dreimal ausgeführt. Bei der vierten Überprüfung steht der Hamster inzwi-
schen vor der Mauer (siehe Abbildung 10.5 (b)), sodass der Testbefehl vornFrei() nun den Wert
false liefert. Damit ist die erste while-Anweisung des Hamster-Programms beendet. Als nächste
Anweisung folgt nun der linksUm(); -Befehl. Nach seiner Ausführung ergibt sich die Situation in
Abbildung 10.5 (c). Nun folgt eine zweite while-Anweisung. Die Schleifenbedingung dieser while-
Anweisung wird nun wiederholt ausgewertet, zweimal liefert sie den Wert true , sodass der Hams-
ter zweimal den Befehl vor(); ausführt. Dann steht er vor einer Mauer, genauer gesagt in einer
Ecke (siehe Abbildung 10.5 (d)), die Schleifenbedingung ist nicht mehr erfüllt. Damit ist die while-
Anweisung und - weil dies die letzte Anweisung des Hauptprogramms war - auch das gesamte
Programm beendet, und zwar korrekt: Der Hamster steht in einer Ecke.
(a)
(b)
(c)
(d)
Abbildung 10.5: Test von Beispiel 2
Überprüfen Sie bitte selbstständig, dass das Programm auch für die anderen vorgegebenen Land-
schaften aus Abbildung 10.4 korrekt arbeitet. Insbesondere ist die Abbildung rechts interessant. Hier
befindet sich der Hamster bereits zu Anfang in einer Ecke.
 
Search WWH ::




Custom Search