Schleifen (While-loops)
Neben den Verzweigungen brauchen wir noch eine weitere Kontrollstruktur um unsere Programme zu strukturieren. Wir wollen nämlich in der Lage sein eine Sequenz von Anweisungen beliebig oft zu wiederholen. Dies machen wir in Python mit der While-Schleife, die schematisch wie folgt aussieht:
while BOOLSCHER-AUSDRUCK:
CODE-BLOCK
Die Form dieser Anweisung ist sehr ähnlich wie die der if-Anweisung. Wir haben zuerst das Schlüsselwort while
, danach kommt eine Bedingung die geprüft wird.
Wie bei der if-Anweisung wird die Zeile dann mit einem Doppelpunkt abgeschlossen und danach kommt ein Codeblock, der durch Einrückung definiert ist.
Die Anweisung funktioniert wie folgt: Solange der boolsche Ausdruck den Wert Wahr
ergibt, werden die Anweisungen im CODE-BLOCK ausgeführt. Wenn die
Bedingung den Wert Falsch
ergibt, ist die Anweisung fertig abgearbeitet und das Programm führt (falls vorhanden) die nächste Anweisung in der Sequenz aus.
Hier ein Beispiel:
i = 0
while i < 10:
print("Dieser Text wird mehrere Male ausgeführt")
i = i + 1
print("Dieser Text wird nur einmal ausggeben")
Wir verwenden hier eine Variable i
, welche am Anfang den Wert 0 annimmt.
Bevor die Anweisungen innerhalb der while-Schleife ausgeführt werden, wird geprüft, ob die Bedingung i < 10
den Wert Wahr
entspricht.
Dies ist in diesem Fall gegeben und die Anweisungen im Code-Block innerhalb der while-Schleife werden ausgeführt. Zuerst wird die print-Anweisung ausgeführt,
und dann wird der Variable i
den Wert i + 1
zugewiesen. Nun wird wieder die Bedingung geprüft, welche noch immer dem Wert Wahr
entspricht und
die print-Anweisung sowie die Zuweisung werden erneut ausgeführt. Dies geschieht so lange, bis wir der Variablen i
im zehnten Durchlauf der
Schleife den Wert 10
zuweisen. Danach ist die Schleife zu Ende.
Dieses Beispiel wird in folgendem Video nochmals ausführlich diskutiert.
Probieren Sie es doch gleich selbst aus.
Experimente:
- Was passiert wenn die Schleifenbedingung immer Wahr ergibt? (Beispielsweise
while 1 < 2:
) - Können Sie die Variable
i
zuerst auf 10 setzen, und dann die Zahlen von 10 bis 1 mitprint
in derwhile
-Schleife ausgeben?
Verschachtelung von Schleifen
Da ein Code-Block aus beliebigen Anweisungen bestehen darf, dürfen wir auch hier while-schleifen beliebig verschachteln. Auch dürfen wir natürlich eine if-Anweisung innerhalb einer while-Anweisung schreiben oder umgekehrt. Das folgende Beispiel zeigt ein etwas komplizierteres Programm, welches von dieser Möglichkeit Gebrauch macht. Das Programm nutzt zwei verschachtelte while-Schleifen um Zeilen mit Sternchen zu produzieren, wobei die te Zeile jeweils Sternchen enthält.
Experimente:
- Boolsche Ausdrücke können schnell zu komplizierten Programmen führen. Was passiert zum Beispiel wenn Sie die
if-Anweisung auf Zeile 5 durch die Anweisung
if i % j == 0 or j % i == 0:
ersetzen?
Fragen und Kommentare
Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.