4.8.2 Die
do-while-Schleife |
|
Alternative |
Wie am Anfang des Kapitel schon
erwähnt, lassen sich Schleifen in Java auf verschiedene Weisen
realisieren. Zwar würde es im Prinzip reichen, eine Variante zu kennen,
die Implementierung wird aber oft einfacher und damit auch leichter zu
lesen, wenn man sie dem Problem anpassen kann, und das bedeutet, auch dass
man die Alternativen zur
for-Schleife
kennt und benutzt. Zunächst geht es uns nicht um die Anpassung an
ein Problem, sondern nur um das Kennen lernen der Alternativen. Wir also
lernen, unsere Aufgabe, das Sechseck zeichnen zu lassen auch mit einer
sog. do-while-Schleife lösen zu können. Gleichzeitig begegnet uns eine
noch nicht benutzte Turtle-Methode, die wir hiermit vorstellen. |
getOrientation() |
Ein Blick in die Turtle-Dokumentation
bestätigt uns, dass es eine Methode gibt, die es uns erlaubt, die
Orientierung eines Turtle-Objektes zu ermitteln: |
![]() |
|
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 | 4.8.3 Die while-Schleife |
zur Startseite | www.pohlig.de (C) MPohlig 2004 |