Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Schleifen
Häufig wiederholen sich Anweisungen in Algorithmen. Solche Anweisungen lassen sich in der Datenstruktur Schleife zusammenfassen. Die Frage ist nun, wie oft die Anweisungen wiederholt werden sollen. Auf diese Frage gibt es mehrere Antworten:
Schleifen mit Abbruchbedingung
Kopfgesteuerte Schleife
Wiederhole solange die Bedingung erfüllt ist:
…Anweisungen…
Bei der kopfgesteuerten Schleife wird die Schleifenbedingung am Anfang der Schleife getestet. Die Schleife wird immer wieder durchlaufen, solange die Bedingung erfüllt ist. Wenn die Bedingung beim Eintritt nicht erfüllt, wird die Schleife nicht durchlaufen.
Struktogramm
Fußgesteuerte Schleife
Wiederhole:
…Anweisungen…
solange die Bedingung erfüllt ist
Bei der fußgesteuerten Schleife wird die Schleifenbedingung am Ende der Schleife getestet. Die Schleife wird immer wieder durchlaufen, solange die Bedingung erfüllt ist. Wenn die Bedingung beim Eintritt nicht erfüllt, wird die Schleife mindestens einmal durchlaufen.
Struktogramm
Schleifen mit Abbruchbedingung in Python
In Python wird eine kopfgesteuerte Schleife mit der while
-Anweisung umgesetzt. Für fußgesteuerte Schleifen gibt es keine eigene Anweisung, es gibt aber mehrere Möglichkeiten, eine fußgesteuerte Schleife zu simmulieren. Widmen wir uns aber zunächst der while
-Anweisung und ihrer Syntax:
while Bedingung: ... Anweisungen ...
Nach while
steht die Bedingung, gefolgt von einem Doppelpunkt. Solange die Bedingung erfüllt ist, wird die Schleife durchlaufen. Wir müssen also in der Schleife dafür sorgen, dass die Bedingung irgendwann nicht erfüllt ist, sonst haben wir eine Endlosschleife.
Beispiel 1
Erstelle ein Programm, welches nach Eingabe einer ganzen Zahl die Quadratzahl berechnet. Nach jeder Berechnung soll gefragt werden ob das Programm fortgesetzt erden soll. Bei Eingabe von „Nein“ wird das Programm beendet.
# Die Variable eingabe muss initialisiert werden, sonst kommt es beim Eintritt in die Schleife zur Fehlermeldung eingabe = "" while eingabe != "N": zahl = int(input("Zahl: ")) print("Quadratzahl:",zahl*zahl) eingabe = input("Soll das Programm fortgesetzt werden? (J|N)")
Schleife mit Zähler
m Unterschied zu fuß- und kopfgesteuerten Schleifen steht bei Zählschleifen die Anzahl der Durchläufe vor dem Schleifeneintritt fest. Dabei nimmt eine sogenannte Zählvariable während des Schleifendurchlaufs eine endliche Anzahl von fest definierten Werten an.
In verbaler Kurzform lässt sich der Algorithmus wie folgt formulieren:
Für Startwert bis Endwert mit Schrittweite führe aus: …Anweisungen…
Struktogramm
Zählschleifen in Python
In Python kann man eine Zählschleife mit Hilfe der for
- und der range
-Anweisung umsetzen. Die range
-Anweisung erzeugt dabei die Werte, die die Zählvariable durchlaufen soll. Sie besitzt den folgenden Aufbau:
range (Startwert, Endwert, Schrittweite)
Startwert
und Schrittweite
können weggelassen werden. Es wird dann angenommen, dass der Startwert
den Wert 0 hat und die Schrittweite
den Wert 1 hat. Fehlt nur ein Parameter, so wird angenommen, dass die Schrittweite
fehlt. range
erzeugt nun eine Folge von Werten, die mit dem Startwert
beginnt. Der jeweils nächste Wert ergibt sich, indem man zu einem Wert die Schrittweite
addiert. Das wird wird immer weiter fortgesetzt, solange ein Wert noch keiner ist als der Endwert
.