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
- Bringen Sie beide Programme zum Laufen.
- Kommentieren Sie jede Zeile der beiden Programme.
- Zeichnen Sie das Struktogramm für jedes dieser beiden Programme
zurück
© ERG Saalfeld - HD. Kirmse + Dustin Wiese letztes Update: 20.02.2023
|