9.2 Die do-while-Schleife |
|
Alternative |
Schleifen lassen sich in Java auf
verschiedene Weisen realisieren. So gibt es neben der gerade kennen
gelernten
for- auch
while und do-while
- Schleifen. Im Prinzip würde es reichen nur eine Variante zu kennen.
Die Implementierungen werden aber oft einfacher und damit auch leichter
zu lesen, wenn man dem Problem angepasst, die eine oder andere
Alternative einer Schleife benutzt. Zunächst aber wollen wir
zeigen, wie wir unsere Aufgabe, das Sechseck zeichnen zu lassen auch mit
einer sog. do-while-Schleife lösen können und stellen dazu eine weitere
Methode unserer Turtle vorstellen. |
getOrientation() | Die Turtledokumenation zeigt uns, dass es eine Methode gibt, um die Orientierung einer Turtle zu erhalten: |
![]() |
|
t.getOrientation() liefert also die Richtung, in der die Turtle t im Moment 'schaut'. | |
Download: Sechseck2.java |
|
Struktogramm |
![]() |
Syntax |
do{ |
Wird die Bedingung erfüllt (der hier
stehende Ausdruck wird zu 'wahr' ausgewertet, wird der Schleifenkörper
erneut durchlaufen. Die Tatsache, dass die Kontrolle über die
Schleife am Ende erfolgt, macht auch verständlich, dass eine
do-while
- Schleife grundsätzlich mindestens einmal durchlaufen wird. |
|
Walter darf beim randomWalk-Tanz die Tanzfläche nicht verlassen |
Das nächste Beispiel zeigt eine
andere Realisierung einer
do-while
- Schleife. Wie wir noch sehen werden, ist es sehr schwer und man müsste
'Verrenkungen' machen um dieses Beispiel in einer
for-Schleife
zu realisieren. Wir verlangen nämlich, dass 'der Turtle' Walter seinen
Random-Walk aus dem letzten Kapitel nur solange tanzen darf, bis er an
den Rand der Tanzfläche kommt. Dazu erinnern wir uns, dass das Feld, auf
dem eine Turtle sich bewegen kann einem Koordinatensystem gleicht,
dessen x- und y-Koordianten jeweils von -200 bis 200 reichen und eine
Turtle sich nach ihrer Erzeugung standardmäßig im Koordinatenursprung
befindet. Walter tanz also solange, bis die x- bzw. y-Koordinate des
Ortes an dem er sich nach einem Tanzschritt befindet den Wert 200 oder
-200 hat, oder anders ausgedrückt, er setzt seinen Tanz fort, wenn
(x > -200) && (x < 200) && (y > -200) && (y < 200) wobei x und y die Variablen sind,
in denen die x- bzw. y- Koordianten der Turtle Walter gespeichert sind
und das Zeichen &&
das logische und bezeichnet. |
|
|
Download: RandomWalk. java |
Selbstverständlich muss nach jedem
Schritt die Koordinaten von Walter neu bestimmt werden, wir deklarieren
dazu diese Variablen vor Eintritt in die Schleife und bestimmen nach
jedem Schritt Walters mit den Methoden
getX()
und getY(). Dass eine Realisierung des Programms mit einer for-Schleife ist nicht nur umständlich, es entspräche auch keinem guten Programmierstil. |
zu | 9.3 Die while-Schleife |
zur Startseite | www.pohlig.de (C) MPohlig 2003 |