Skip to main content

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 Falschergibt, 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 mit print in der while-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 nn Zeilen mit Sternchen zu produzieren, wobei die ii-te Zeile jeweils ii 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.