Die while-Schleife in Python

Neben der if-Verzweigung stellt die while-Schleife eine weitere – häufig genutzt – Kontrollstruktur zur Steuerung des Programmablaufs dar. Solange die Bedingung wahr (True) ist, wird die while-Schleife durchlaufen, wie folgendes Beispiel demonstriert:

i = 0
while i < 5:
    i = i + 1
    print(i)

1
2
3
4
5

Wie dem Beispiel entnommen werden kann, wird die Schleife mit dem Schlüsselwort while eingeleitet, gefolgt von einem booleschen Ausdruck und einem Doppelpunkt. Die Bedingung (bzw. der boolesche Ausdruck) lautet hier i < 5. Solange diese wahr ist, wird mit jedem Durchlauf zur Variablen i der Wert 1 addiert.

Wie bei der if-Verzweigung kann auch hier else verwendet werden:

i = 0
while i <= 10:
    i += 1
    print(i * 2)
else:
    print("i is now greater than 10")

Der Code im else-Block wird ausgeführt, sobald i <= 10 zu False evaluiert.

break-Anweisung

Des Weiteren kann die while-Schleife auch mit der if– und der break-Anweisung kombiniert werden.

i = 0
while i < 10:
    i = i + 1
    print(i)
    if i == 6:
        break

1
2
3
4
5
6

In diesem Fall werden nicht zehn Werte ausgegeben, sondern bei 6 endet die Ausgabe. Dies hängt damit zusammen, dass durch die Evaluierung von i == 6 zu True die break-Anweisung ausgeführt wird, was die Beendigung der Schleife zur Folge hat.

continue-Anweisung

Neben break gibt es noch die continue-Anweisung. Betrachten wird dazu folgendes Beispiel:

value = 0
numbers = []
counter = 0

while counter < 3:

    value = input('Enter three even numbers: ')

    if int(value) % 2 != 0:
        print('The number must be even!')
        continue

    numbers.append(value)
    counter += 1

    print(f'Your numbers: {numbers}')

Der Nutzer wird dazu aufgefordert, drei gerade Zahlen einzugeben. Mithilfe einer if-Struktur wird überprüft, ob eine gerade Zahl eingegeben wurde. War dies nicht der Fall, dann greift die continue-Anweisung, die dazu führt, dass der aktuelle Schleifendurchlauf beendet wird.

Wurde hingegen eine gerade Zahl eingegeben, dann wird diese Zahl zur Liste numbers hinzugefügt und die Variabel counter wird um den Wert 1 hochgezählt.

Der Unterschied zwischen break und continue besteht darin, dass durch break eine Schleife komplett abgebrochen wird, während bei continue nur der aktuelle Schleifendurchlauf beendet wird.

Weitere Kontrollstrukturen