Die Webseiten der Fachschaft Informatik am ERG Saalfeld


Vertiefung while-Schleife

Python kennt keine fussgesteuerten Schleifen, wie sie in anderen Sprachen geläufig sind. Und natürlich gibt es Probleme, die eigentlich direkt auf eine fussgesteuerte Schleife passen. Das ist z.B. dann der Fall, wenn die Anweisungen in der Schleife mindestens einmal durchlaufen werden sollen und am Ende gefragt wird, ob die Anweisungen wiederholt werden sollen.

Beispiel: Es soll solange gewürfelt werden, bis man eine 6 gewürfelt hat.
Bedeutet: es wird also mindestens einmal gewürfelt (also die Anweisungen der Schleife durchlaufen) und am Ende (also am Fuss) wird gefragt, ist es eine 6, sonst wiederhole.
 

Es gibt 2 Möglichkeiten der Lösung in Python:

1. Möglichkeit: Schleife mit  while True:   und am Ende Abbruch mit break

wir setzen die Bedingung der Schleife auf "wahr", also True. Dann werden die Anweisungen in der Schleife auf jeden Fall abgearbeit. Als letzte Anweisungen überprüfen wir mit einer if-Anweisung, ob die Bedingung erfüllt ist (hier, ob wir eine 6 gewürfelt haben) und brechen die Schleife ab (mit break).

Programm

from random import randint

while True:
    zahl = randint(1,6)
    print(zahl, "  ", end = "")
    if zahl == 6:
        break

print("")

 

2. Möglichkeit: mit einer "normalen" while-Schleife und so initialisieren, dass die Schleife mindestens einmal durchlaufen wird.

Die Bedingung für die Schleife ist ja, solange die Zahl ungleich 6 ist, soll gewürfelt werden. Also Initialisieren wir die Zahl (vor der Schleife) mit irgendeiner Zahl ungleich 6. Im folgenden Programm mit 8.

from random import randint

zahl = 8

while zahl != 6:
    zahl = randint(1,6)
    print(zahl, "  ", end = "")

print("")

 

Beide Programme leisten genau dasselbe. Es wurde mit beiden Programmen gewürfelt. Das sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie beide Programme zum Laufen.
  2. Kommentieren Sie jede Zeile der beiden Programme.
  3. Zeichnen Sie das Struktogramm für jedes dieser beiden Programme

 

zurück


© ERG Saalfeld   -   HD. Kirmse + Dustin Wiese     letztes Update: 20.02.2023