Jython HomeDruckenJava-Online

while - Schleife (Iteration)


Mit einer while-Schleife können bestimmte Anweisungen mehrmals wiederholt werden. Eine while-Schleife wird mit dem Schlüsselwort while, einer Schleifenbedingung und einem Doppelpunkt eingeleitet. So lange die Bedingung erfüllt ist, werden die Anweisungen im nachfolgenden Programmblock (eingerückte Zeilen) wiederholt. Um die Schleifenbedingung zu definieren braucht man eine Variable i. In diesem Beispiel wird i nur verwendendet, um die Anzahl Wiederholungen zu zählen. i hat zu Beginn den Wert i = 0 . Dieser wird bei jedem Schleifendurchlauf um 1 erhöht. Bei i = 4 wird der Programmblock nicht mehr ausgeführt.

Beispiel 1: Mit while-Schleife ein Quadrat zeichnen
# Tu2.py

from gturtle import *

makeTurtle()

i = 0
while i < 4:
    forward(100)
    right(90)
    i = i + 1 
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 
Ausführen mit Webstart

Erklärungen zum Programmcode:

Die Anweisung i = 0 wird auch als Startwert bezeichnet und muss vor der while-Schleife definiert werden
while i < 4 : Die Variable i nimmt die Werte 0, 1, 2 und 3 an. Die Schleife wird also 4 mal wiederholt.
In der Schleifenbedingung werden üblicherweise die Vergleichsoperatoren >, >= , < , <= , == , != verwendet. Der Doppelpunkt darf nicht fehlen
i = i + 1 Das Gleichheitszeichen hat in Computerprogrammen nicht dieselbe Bedeutung wie in der Mathematik. Es ist eine Zuweisung und nicht eine Gleichung. In Python kann man diese Werterhöhung auch mit i += 1 abkürzen

 

Beispiel 2: Punkte zeichnen
Die Turtle bewegt sich 80 Schritte vorwärts und zeichnet einen Punkt. Danach bewegt sie sich 80 Schritte Rückwärts und dreht 60° nach links. Der eingerückter Programmblock wird 6 mal wiederholt.

# Tu2a.py

from gturtle import *

makeTurtle()

a = 0
while a < 6:
    forward(80)
    dot(20)
    back(80)
    left(60)
    a = a + 1
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 

Ausführen mit Webstart


Erklärungen zum Programmcode:

back(80) : Fir Turtle bewegt sich 80 Schritte rückwärts


  Endlose while-Schleife


Mit einer while True-Schleife kann ein Programmblock endlos wiederholt werden. Die Anweisungen werden so lange wiederholt, bis das Programm durch Schliessen des Turtle-Fensters abgebrochen wird.

Beispiel 3: Die Turtle bewegt sich während der ganzen Programmdauer auf einer Kreisbahn

# Tu2b.py

from gturtle import *

makeTurtle()

while True:
    forward(3)
    right(3)
    
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)
 

Ausführen mit Webstart



Erklärungen zum Programmcode:

Da sich die Turle nach jeder kurzen Strecke um 3° dreht, zeichnet sie nach 120 Wiederholungen den ganzen Kreis (Schleifenbedingung i < 120). Bei einer while True: Schleife bewegt sie sich weiter auf dem bereits gezeichneten Kreis so lange bis das Turtlefenster geschlossen wird

In unserer Lernumgebung kann man das Programm mit dem Schliessen des Turtlefensters abbrechen. Im allgemeinen sind endlose Schleifen ohne Abbruch-Möglichkeit aber gefährlich, da sie im Extremfall nur durch Neustart des Computers beendet werden können.

 

 


Aufgaben: Serie 2

  Nimm das Programm aus dem Beispiel 1 als Vorlage und ändere die Anzahl Wiederholungen
und den Drehwinkel so dass die Turtle folgende Figuren zeichnet:

1)
2)
3)
4)



5)

Zeichne die nebenstehende Figur. Die Turtle dreht nach jedem gezeichneten Element um 12° nach links, so lange bis die gesamte Drehung 360° ist.

 


Anmerkung

Im TigerJython steht auch eine einfache repeat - Schleife zur Verfügung. Mit repeat 4: wird der eingerückte Programmblock 4 mal wiederholt.

from gturtle import *

makeTurtle()
repeat 4:
   forward(100) 
   left(90)

Die Verwendung der repeat-Schleife ist insbesondere für Programmieranfänger vorteilhaft, da keine Variablen notwendig sind. Programme mit repeat funktionieren aber nur wenn man die TigerJython-IDE verwendet. Die while-Schleifen und for-Schleifen, die im nächsten Abschnitt erklärt werden, sind standard-Python-Schlüsselwörter und werden in ähnlicher Form auch in anderen Programmiersprachen verwendet.