Warum wir Schleifen brauchen
Warum brauchen wir das?
Stell dir vor, du willst fünfmal „Training!“ ausgeben.
Ohne Schleife:
print("Training!")
print("Training!")
print("Training!")
print("Training!")
print("Training!")
Das geht – aber:
- bei 100 Wiederholungen unmöglich
- bei einer Änderung 100 Stellen anfassen
- leicht Tippfehler
Schleifen wiederholen Code, solange eine Bedingung gilt – oder für eine geplante Menge an Schritten (for kommt später).
Definition: Schleife und while
Definition – Schleife:
Eine Schleife wiederholt einen Code-Block mehrmals.
Definition – while:
whilebedeutet: Solange die Bedingung wahr ist, führe den Block aus.
Nach dem Block wird die Bedingung erneut geprüft.
Alltagsbilder:
| Alltag | while-Idee |
|---|---|
| „Solange der Teig klebrig ist, kneten“ | Bedingung prüfen, Handlung, wieder prüfen |
| „Solange Versuche übrig, raten“ | Ratespiel |
| Runden im Sport bis 5 | Zähler wächst, bis Grenze erreicht |
Luna und die Trainingsrunden
runden = 1
while runden <= 5:
print(f"Runde {runden}")
runden = runden + 1
print("Fertig!")
Ausgabe:
Runde 1
Runde 2
Runde 3
Runde 4
Runde 5
Fertig!
Py rennt im Kreis, bis die Bedingung falsch wird.
Lily erhöht den Zähler – sonst Endlosschleife.
Buggy vergisst runden = runden + 1 und läuft ewig.
Neue Wörter
Wiederholt Anweisungen mehrmals.
Solange-Schleife: solange Bedingung True, Block ausfuehren.
Der Test vor jedem Durchlauf: weiter oder stopp?
Einmal den Schleifenkoerper ausfuehren.
Aufbau von while
while bedingung:
# eingerueckter Block
# etwas aendern, damit es enden kann!
Die Goldregel
Im Block muss sich irgendetwas ändern, das die Bedingung irgendwann False macht.
Sonst: Endlosschleife.
Was passiert im Computer? (Ablauf)
Für das Runden-Beispiel:
runden = 1- Prüfe
runden <= 5→ True → Block - print, dann
rundenwird 2 - zurück zu Prüfung
- … bis
runden6 ist → False → raus print("Fertig!")
[Bedingung?] --True--> [Block] --zurueck--> [Bedingung?]
|
False
v
[weiter im Programm]
Countdown-Beispiel
n = 3
while n > 0:
print(n)
n = n - 1
print("Start!")
Ausgabe:
3
2
1
Start!
Hier zählt der Zähler runter.
Häufige Irrtümer
| Irrtum | Richtig |
|---|---|
| while braucht keinen Doppelpunkt | Doch: while ...: |
| Bedingung nur einmal prüfen | Jeder Durchlauf prüft neu |
| Zähler ändert sich von allein | Du musst ihn ändern |
| Endlosschleife ist immer Absicht | Am Anfang meist Bug |
Probiere es selbst
Experiment 1
Zähle von 1 bis 3 mit while.
Experiment 2
5-mal deinen Namen ausgeben.
Experiment 3
Countdown von 5.
Experiment 4
Absichtlich Zähler vergessen – sofort stoppen (Stop-Button / Ctrl+C), dann reparieren.
Fehlerdetektiv
x = 1
while x < 3:
print(x)
Lösung
x wächst nie → Endlosschleife.
Im Block z. B. x = x + 1.
Übungen
Level 1
Gib 1,2,3,4 mit while aus.
Lösung
n = 1
while n <= 4:
print(n)
n = n + 1
Level 2
Countdown 5 → 1, dann „Start!“.
Lösung
n = 5
while n >= 1:
print(n)
n = n - 1
print("Start!")
Level 3
User gibt Startzahl ein, zähle bis 0 ab (inklusive oder exklusive – entscheide und erkläre).
Beispiel
n = int(input("Start: "))
while n >= 0:
print(n)
n = n - 1
Mini-Challenge
Erkläre mit eigenen Worten:
- Was ist eine Schleife?
- Wann endet while?
- Warum muss sich etwas im Block ändern?
Zusammenfassung
- Schleifen wiederholen Code.
while= solange Bedingung True.- Jeder Durchlauf prüft neu.
- Etwas muss die Bedingung beenden können.
- Doppelpunkt und Einrückung wie bei if.
Mini-Quiz
- Was ist ein Durchlauf?
- Was ist eine Endlosschleife?
- Wann wird
Fertig!im ersten Beispiel ausgegeben?
Lösungen
- Einmal den Schleifenkörper ausführen.
- Die Bedingung wird nie False.
- Nachdem die while-Schleife beendet ist.
while-Idee sitzt! Als Nächstes: Zähler sauber verwenden.