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

Kopfgesteuerte Schleife	Fußgesteuerte Schleife

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.

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!

>> Lösungen

>> Zählschleifen