Zum Hauptinhalt springen

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:
while bedeutet: Solange die Bedingung wahr ist, führe den Block aus.
Nach dem Block wird die Bedingung erneut geprüft.

Alltagsbilder:

Alltagwhile-Idee
„Solange der Teig klebrig ist, kneten“Bedingung prüfen, Handlung, wieder prüfen
„Solange Versuche übrig, raten“Ratespiel
Runden im Sport bis 5Zä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

Schleifeloop

Wiederholt Anweisungen mehrmals.

whilewhile

Solange-Schleife: solange Bedingung True, Block ausfuehren.

Schleifenbedingungloop condition

Der Test vor jedem Durchlauf: weiter oder stopp?

Durchlauf / Iterationiteration

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:

  1. runden = 1
  2. Prüfe runden <= 5 → True → Block
  3. print, dann runden wird 2
  4. zurück zu Prüfung
  5. … bis runden 6 ist → False → raus
  6. 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

IrrtumRichtig
while braucht keinen DoppelpunktDoch: while ...:
Bedingung nur einmal prüfenJeder Durchlauf prüft neu
Zähler ändert sich von alleinDu musst ihn ändern
Endlosschleife ist immer AbsichtAm 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:

  1. Was ist eine Schleife?
  2. Wann endet while?
  3. 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

Mini-QuizWas braucht while am Zeilenende?
  1. Was ist ein Durchlauf?
  2. Was ist eine Endlosschleife?
  3. Wann wird Fertig! im ersten Beispiel ausgegeben?
Lösungen
  1. Einmal den Schleifenkörper ausführen.
  2. Die Bedingung wird nie False.
  3. Nachdem die while-Schleife beendet ist.

while-Idee sitzt! Als Nächstes: Zähler sauber verwenden.