Inhaltsverzeichnis
Schleifen mit Abbruchbedingung
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. Eine Möglichkeit ist es, die Anweisungen solange zu wiederholen, solange eine bestimmte Bedingung erfüllt ist. Damit lässt sich der Algorithmus auf die folgenden beiden Arten formulieren.
Allgemeine Formulierung
Verbale Kurzbeschreibung
Kopfgesteuerte Schleife
Wiederhole solange die Bedingung erfüllt ist:
…Anweisungen…
Fußgesteuerte Schleife
Wiederhole:
…Anweisungen…
solange die Bedingung erfüllt ist
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.
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
Python-Syntax
In Python gibt es keine Anweisung für fußgesteuerte Schleifen. Man kann aber fußgesteuerte Schleifen simulieren indem man vor die Schleife eine Anweisung schreibt, die die Eintrittsbedingung in die Schleife erfüllt.
Kopfgesteuerte Schleife
while <bedinung>: a1 a2 ... an
Fußgesteuerte Schleife
anweisung #erfüllt die Bedingung while <bedinung>: a1 a2 ... an
Nach dem Schlüsselwort while
steht die Bedingung, danach ein Doppelpunkt. Auf den nächsten Zeilen folgt eingerückter Code. Dieser wird solange ausgeführt, solange die Bedingung erfüllt ist.
Hier erscheint vor der Schleife eine Anweisung, die die Bedingung erfüllt. Somit wird die Schleife mindestens einmal durchlaufen.
Beispiel
Aufgabenstellung
Wir wollen ein Programm schreiben, welches nach Eingabe einer ganzen Zahl die zugehörige Quadratzahl ausgibt. Die Ein- und die Ausgabe sollen solange wiederholt werden, bis die Zahl 0 eingegeben wurde.
Verbale Kurzbeschreibung
Wiederhole:
- Eingabe: zahl
- Ausgabe: zahl * zahl
solange zahl ungleich Null
Struktogramm
Eigentlich handelt es sich bei unseren Algorithmus um eine fußgesteuerte Schleife (siehe Struktogramm rechts). Da es aber im Python keine Kontrollstruktur für eine fußgesteuerte Schleife gibt, simuliert man eine fußgesteuerte Schleife durch eine kopfgesteuerte Schleife, indem man vor dem Schleifeneintritt sicherstellt, dass die Schleifenbedingung erfüllt ist (siehe Struktogramm links).
Umsetzung in Python
zahl = -1 while zahl != 0: zahl = int(input("z = ")) print("z² =",zahl*zahl)
Bei der Umsetzung in Python wurde als Vorlage das Struktogramm links genutzt.
Erklärvideo
Vertiefung
Im Lehrbuch inf-Schule wird das Thema nochmal vertieft:
Aufgaben
Aufgabe 1
Schreibe ein Programm, welches solange ein Passwort abfragt, bis das richtige Passwort („geheim“) eingegeben wurde. Am Ende soll dass Programm beim richtigen Passwort ausgaben: „Eingabe korrekt!“
Aufgabe 2
Das folgende Pythonprogramm testet eine Zahl auf Teilbarkeit durch 3.
n = int(input("n = ")) if n % 3 ==0: print("n ist durch 3 teilbar!") else: print("n ist nicht durch 3 teilbar!")
Ergänze das Programm mit einer while-Schleife, so dass nach jeder Ergebnisausgabe gefragt wird, ob eine weitere Zahl getestet werden soll!
Hier können Fragen zum Inhalt der Seite gestellt werden.