9 Schleifen
9.1 Die for-Schleife

 
  Wir veranlassen die Turtle ein Sechseck zu zeichnen in dem wir in der zeichne()-Methode

public void zeichne(){
   t.forward(100);
   t.right(60);
}

eintragen, den Quelltext kompilieren und wenn das Programm läuft, sechsmal auf den zeichne-Schalter klicken. Das gleiche Ergebnis erhalten wir durch ein einmaliges Klicken des zeichne-Schalters, wenn wir die obige Sequenz versechsfachen zu:

public void zeichne(){
   t.forward(100);
   t.right(60);
   t.forward(100);
   t.right(60);
   t.forward(100);
   t.right(60);
   t.forward(100);
   t.right(60);
}

Dass diese Art nicht sehr befriedigend ist, leuchtet ein. Eine echte Alternative wäre die folgende zeichne()-Methode:

public void zeichne() {

  for(int i=1; i<=6; i++){

    t1.forward(100);

    t1.right(60);

  }

}
Struktogramm Vor Eintritt in die for-Schleife steht im Prinzip fest, wie oft das getan werden soll, was sich im Schleifenkörper, also das was sich zwischen den geschweiften Klammern der befindet. Die Vorwegkontrolle über den Schleifenkörper zeigt sich in dem nebenstehenden Struktogramm. Schauen wir uns die Syntax des Schleifenkopfes genauer an:
 
Download:
Sechseck.java

for(int i=1; i<=6; i++){

}

Hinter dem reservierten Wort for steht zunächst eine runde Klammer, in der durch Semikola getrennt drei Ausdrücke stehen.

1. int i=1

Es wird eine (Zähl)variable i deklariert und initialisiert. Auf diese Weise ist i lokal in der Schleife erklärt, außerhalb existiert diese Variable nicht mehr und kann erneut verwendet werden, ohne dass irgendwelche Konflikte auftreten. Ist dagegen die Variable i bereits deklariert, benötigt man hier nur noch eine Initialisierung (for i=1; i<=6; i++)), dann aber ist i nicht mehr lokal in der Schleife sondern in einem größeren Bereich definiert und Seiteneffekte müssen berücksichtigt werden. Wir empfehlen also, die oben dargestellte Variante.

3. i++

Betrachten wir zunächst den dritten Ausdruck. In ihm wird i um 1 inkrementiert also sein Wert um 1 erhöht. Diese Inkrementierung findet am Ende eines jeden Schleifendurchgang statt.

2. i <= 6

An zweiter Stelle steht ein Ausdruck, der zu 'wahr' oder 'falsch' ausgewertet wird. D.h. vor einem erneuten Schleifeneintritt wird geprüft, ob diese Bedingung noch wahr ist. Ist dies dies nämlich nicht der Fall, so wird die Schleife abgebrochen, der Schleifenkörper wird nicht mehr abgearbeitet.

Erwähnen müssen wir noch, dass der Wert i selbst im Schleifenkörper benutzt und unter Umständen neu gesetzt werden kann. Wir werden dazu später noch Beispiele kennen lernen.

 

zu 9.2 Die While-Schleife
zur Startseite www.pohlig.de  (C) MPohlig 2003