Kontrollstrukturen
Kontrollstrukturen: alles, was zwischen "tu dies" und "tu das" entscheidet.
Du kannst Zahlen, Text und Wahr-oder-Falsch-Werte in Variablen speichern — aber bisher läuft dein Programm stur von oben nach unten, eine Zeile nach der anderen. Wie eine Einkaufsliste, die man laut vorliest.
Was, wenn das Programm Teenager anders begrüßen soll als Erwachsene? Was, wenn es tausend Datenpunkte verarbeiten soll, ohne dass du tausend Zeilen schreibst? Kontrollstrukturen lösen beide Probleme: Verzweigungen lassen Code Entscheidungen treffen, und Schleifen lassen Code Aktionen wiederholen. Am Ende dieses Artikels verstehst du die drei grundlegenden Muster — if/elif/else, for und while — und weißt genau, wann du welches einsetzt.
Verzweigungen — Entscheidungen mit If/Elif/Else
Was ist eine Verzweigung?
Die Analogie bricht an einer Stelle: Ein Türsteher nutzt Ermessensspielraum ("sieht älter aus", "kein Ausweis dabei"). Ein Programm kennt nur True oder False — die Bedingung alter >= 18 ist entweder erfüllt oder nicht, Graubereiche gibt es nicht.
Ausführungsspur: alter = 17
Code-Beispiel: Altersüberprüfung
Häufiger Irrtum: "if prüft alle Bedingungen"
For-Schleifen — Wiederholen mit bekannter Anzahl
Was ist eine For-Schleife?
Die Analogie bricht dort, wo der Postbote spontan ein Haus überspringt. Eine for-Schleife durchläuft standardmäßig jedes Element — es sei denn, du verwendest break zum Abbruch oder continue zum Überspringen des aktuellen Elements.
Code-Beispiele: Listen und range()
Häufiger Irrtum: "range(5) ergibt 1 bis 5"
While-Schleifen — Wiederholen bis sich etwas ändert
Was ist eine While-Schleife?
Im echten Leben würdest du irgendwann aufgeben, wenn jemand nie das richtige Passwort trifft. Eine while-Schleife gibt nicht von selbst auf — sie läuft bis die Bedingung False wird oder du per break abbrichst, egal wie lange das dauert.
Code-Beispiele: Zähler und while True
Warnung: Endlosschleifen
Häufiger Irrtum: "Endlosschleifen sind immer Fehler"
For vs. While — Das richtige Werkzeug wählen
Bekannte Anzahl an Durchläufen. Iteriert über Sammlungen oder range(). Typisch: Listen durchgehen, feste Wiederholungen.
Unbekannte Anzahl an Durchläufen. Prüft Bedingung vor jedem Durchlauf. Typisch: Nutzereingaben, Warten auf Ereignisse.
Faustregel: "Weiß ich vorher, wie oft?" → for. "Weiß ich, wann aufhören?" → while.
Deep Dive: Einrückung ist Syntax, nicht Deko
Deep Dive: Die richtige Schleife wählen
Interaktiv: Welche Kontrollstruktur brauche ich?
Beantworte die Fragen im Entscheidungsbaum, um die passende Kontrollstruktur für dein Problem zu finden. Beachte, wie die Fragen genau die Kriterien aus den vorherigen Abschnitten aufgreifen: Bekannte Anzahl? Bedingung? Mehrere Fälle?
Was soll dein Code tun?
Die wichtigsten Erkenntnisse
Quiz: Kontrollstrukturen
Verständnischeck
- Wenn in einer if/elif/else-Kette mehrere Bedingungen gleichzeitig True sein könnten — werden dann alle passenden Blöcke ausgeführt oder nur einer? Warum?
- Warum erzeugt range(5) genau die Zahlen 0 bis 4? Erkläre, wie Start- und Endwert bei range(start, stop) behandelt werden und wie das mit nullbasierten Indizes zusammenhängt.
- Was passiert in einer while-Schleife, wenn du die Variable in der Bedingung nie veränderst? Welche Rolle kann break dabei spielen?