6. while-Schleife

 

 

DU LERNST HIER...

 

mit einer der wichtigsten Programmstrukturen umgehen. Die while-Schleife kann allgemein für jede Art von Wiederholungen verwendet werden und kommt in praktisch allen Programmiersprachen vor.

 

 

MUSTERBEISPIELE

 

Eine while-Schleife wird mit dem Schlüsselwort while eingeleitet, gefolgt von einer Bedingung und einem Doppelpunkt. So lange die Bedingung erfüllt ist, werden die Befehle im nachfolgenden Programmblock wiederholt. In der Bedingung werden  in der Regel die Vergleichsoperatoren < (kleiner), <= (kleiner-gleich), > (grösser)  >= (grösser-gleich), == (gleich), != (verschieden) verwendet. Eine while-Schleife benötigt in der Regel eine Variable, der zu Beginn ein Startwert und nach jedem Schleifendurchgang eine Wertänderung zugewiesen wird.

Beispiel 1: Zeichnen einer Punktreihe
In der Diagonale des Grafikfensters sollen kleine rote Kreise erscheinen. Der erste Kreis wird an der Position (1, 1), der zweite bei (2, 2) usw. gezeichnet. In diesem Beispiel verwendet man eine while-Schleife mit einen Schleifenzähler i, der auch die Position der Kreise festlegt Solange i kleiner als 20 ist (Schleifenbedingung), werden die Befehle im eingerückten Block wiederholt, wobei i jeweils um 1 erhöht wird.

Programm:     

# Gp6a.py
from gpanel import *

makeGPanel(0, 20, 0, 20)

setColor("red")
i = 1
while i < 20:
    pos(i, i)
    fillCircle(0.5)
    i = i + 1
► In Zwischenablage kopieren
 



Beispiel 2
: Zeichnen einer Linienschar
Die Anfangs- und Endpunkte der Linien legst du mit Hilfe der Schleifenvariablen fest. Diese durchläuft die Werte von 0 bis 40. Damit du das Zeichnen besser beobachten kannst, baust du mit delay(100) nach jeder Linie eine kurze Pause ein.

Programm:     

# Gp6b.py
from gpanel import *

makeGPanel(0, 40, 0, 40)

i = 0
while i <= 40:
    line(i, 0, 40, i)
    delay(100)
    i = i + 1
► In Zwischenablage kopieren
 



Beispiel 3
: Eine Kreisschar zeichnen (gefüllte Kreise mit schwarzem Rand)
Der erste Kreis hat den Radius 20 und bei jedem nächsten Kreis ist der Radius um 1 kleiner. Das eines gefüllten Kreises mit einem schwarzen Rand definierst du in der Funktion blueCircle(r).

Programm:     

# Gp6c.py
from gpanel import *

def blueCircle(r):
    setColor("cyan")
    fillCircle(i)
    setColor("black")
    circle(r)
     
makeGPanel(-20, 20, 0, 40)

i = 20
while i > 0:
    pos(0, i)
    blueCircle(i)
    i = i - 1
    delay(100)
► In Zwischenablage kopieren
 



Beispiel 4
: Verwendung von verschachtelten while-Schleifen
Die Variable x in der äusseren Schleife nimmt die Werte von 1 bis 19 an. Bei jedem neuen x läuft die innere Schleife über alle y (die Säule auf der Position x wird aufgefüllt). Dabei muss man auf die korrekte Einrückung der beiden Programmblocks achten.

Programm:     

# Gp6d.py
from gpanel import *

makeGPanel(0, 20, 0, 20)

setColor("red")

x = 1
while x < 20:
    y = 1
    while y < x:
        pos(x, y)
        fillCircle(0.5)
        y = y + 1
    x = x + 1
► In Zwischenablage kopieren
 


 

 

 

MERKE DIR...

 

Variablen verwendest du für Werte, die während der Programmausführung ändern

. Jede Variable hat einen Namen und einen Wert.

Mit x = x + 1 (kurz x = += 1) wird der Wert der Variablen x um 1 vergrössert,
mit x = x - 1 (kurz x = -= 1) wird der Wert der Variablen x um 1 verkleinert.

 

 

ZUM SELBST LÖSEN

 

1)


Wähle ein geeignetes Koordinatensystem und zeichne das die nebenstehende Linienschar.

 


 

2)


Ergänze die Linienschar aus dem Beispiel 2 zum nebenstehenden Bild.

 
 
3)


Verändere das Programm aus dem Beispiel 4 so, dass die folgenden Grafiken entstehen: