Verzweigungen

5 min 2 Abschnitte
Was du nach diesem Konzept kannst 3
  1. Du bist in der Lage, die Unterschiede und Anwendungsfälle der grundlegenden Verzweigungsstrukturen zu differenzieren ,

    indem für gegebene Problemstellungen die jeweils passendste Struktur (z. B. if-else, switch) ausgewählt und die Entscheidung anhand der Anzahl der Bedingungen und der gewünschten exklusiven oder nicht-exklusiven Ausführung von Codeblöcken begründet wird.

  2. Du bist in der Lage, die Verwendung von Vergleichs- und logischen Operatoren zur Formulierung von Bedingungen in Verzweigungen zu erklären ,

    indem beschrieben wird, wie diese Operatoren (z. B. ==, !=, <, >, AND, OR, NOT) eingesetzt werden, um Variablenwerte zu prüfen und komplexe Entscheidungskriterien zu erstellen, die den Programmfluss steuern.

  3. Du bist in der Lage, die grundlegende Funktionsweise und den Zweck von Verzweigungen als Mittel zur Steuerung des Programmablaufs zu erklären ,

    indem anhand von Codebeispielen erläutert wird, wie diese auf Basis von Bedingungen entscheiden, welcher Codeblock ausgeführt wird.

Wie steuern Verzweigungen den Programmablauf?

Verzweigungen als Weggabelungen im Code

Normalerweise führt ein Computer ein Programm stur Zeile für Zeile von oben nach unten aus. Verzweigungen (Branching) durchbrechen diese starre Reihenfolge: Sie ermöglichen es dem Programm, an bestimmten Punkten eigenständige Entscheidungen zu treffen und je nach Situation unterschiedliche Code-Pfade einzuschlagen.

Stell dir eine automatische Schiebetür im Supermarkt vor. Das Programm prüft kontinuierlich: "Steht eine Person vor der Tür?". Wenn die Antwort "Ja" lautet, wird der Code zum Öffnen der Tür ausgeführt. Lautet sie "Nein", bleibt die Tür geschlossen. Wie du in der zugehörigen Grafik an der Raute (dem Entscheidungsknoten) erkennen kannst, spaltet sich der Kontrollfluss an dieser Stelle auf. Verzweigungen wirken also wie Weggabelungen, die den Programmfluss dynamisch anhand von Bedingungen steuern.

Bedingungen mit Vergleichsoperatoren formulieren

Um dem Computer eine Entscheidung zu ermöglichen, formulierst du eine Bedingung. Aus deinem Vorwissen zu primitiven Datentypen weißt du bereits, was ein Boolean ist. Eine Bedingung ist ein Ausdruck, der vom Computer ausgewertet wird und als Ergebnis immer genau einen solchen Wahrheitswert liefert: entweder wahr (True) oder falsch (False).

Dafür nutzt du Vergleichsoperatoren, um Variablenwerte zu prüfen:

  • == (prüft auf exakte Gleichheit, z. B. passwort == "geheim")
  • != (prüft auf Ungleichheit)
  • < und > (kleiner als / größer als)
  • <= und >= (kleiner gleich / größer gleich)
aktuelle_temperatur = 25

# Die Bedingung (aktuelle_temperatur > 20) wird zu 'True' ausgewertet
if aktuelle_temperatur > 20:
    print("Es ist warm genug für ein T-Shirt.")

Komplexe Kriterien mit logischen Operatoren

Oft reicht eine einzelne Prüfung in der Praxis nicht aus. Mit logischen Operatoren kannst du mehrere einfache Bedingungen miteinander verknüpfen, um komplexe Entscheidungskriterien zu erstellen:

  • and (UND): Der gesamte Ausdruck ist nur dann True, wenn alle verknüpften Einzelbedingungen True sind.
  • or (ODER): Der Ausdruck ist bereits True, wenn mindestens eine der Bedingungen True ist.
  • not (NICHT): Kehrt den Wahrheitswert um (aus True wird False und umgekehrt).
temperatur = 25
ist_sonnig = True

# Beide Bedingungen müssen zwingend erfüllt sein (AND-Verknüpfung)
if temperatur > 20 and ist_sonnig:
    print("Perfektes Wetter für einen Ausflug ins Freie!")
Verzweigungen — dec-software-engineering-programming-basics-control-structures-branching_page1.svg

Welche Verzweigungsstrukturen wählst du für dein Problem?

Die einfache if-Anweisung: Optionale Ausführung

Die if-Anweisung ist die simpelste Form der Verzweigung. Du nutzt sie immer dann, wenn ein bestimmter Codeblock nur unter einer bestimmten Bedingung ausgeführt werden soll und es keine direkte Alternative gibt. Ist die Bedingung falsch (False), passiert einfach gar nichts und das Programm läuft im regulären Textfluss weiter.

Anwendungsfall: Eine Aktion ist rein optional.

akkustand = 15 # in Prozent

# Das Warn-Licht soll ausschließlich bei niedrigem Akku angehen
if akkustand <= 20:
    print("Warnung: Akku fast leer. Bitte aufladen!")

print("Das Programm läuft regulär weiter...")

Die if-else-Anweisung: Die Entweder-Oder-Entscheidung

Wenn du exakt zwei mögliche Szenarien hast, die sich gegenseitig ausschließen, wählst du die if-else-Struktur. Ist die if-Bedingung wahr, wird der erste Block ausgeführt. Ist sie falsch, wird automatisch und garantiert der else-Block ausgeführt. Es wird also immer genau einer der beiden Pfade durchlaufen.

Anwendungsfall: Eine strikte Entweder-Oder-Entscheidung.

eingegebener_code = "RABATT20"
gueltiger_code = "SOMMER24"

if eingegebener_code == gueltiger_code:
    print("Code akzeptiert. 20% Rabatt werden abgezogen.")
else:
    print("Fehler: Ungültiger Gutscheincode.")

Die if-elif-else-Struktur: Mehrere exklusive Alternativen

Gibt es mehr als zwei mögliche Zustände, nutzt du eine if-elif-else-Kette (elif steht für "else if"). Das Programm prüft die Bedingungen streng von oben nach unten. Sobald die erste wahre Bedingung gefunden wird, führt das Programm den zugehörigen Block aus und überspringt danach alle restlichen Prüfungen dieser Kette.

In vielen Programmiersprachen (wie Java oder C#) gibt es für die Prüfung einer einzelnen Variable gegen viele feste Werte auch die switch-Anweisung (in Python ab Version 3.10 als match-case bekannt). Sie ist oft übersichtlicher als eine lange elif-Kette.

Anwendungsfall: Kategorisierungen, bei denen ein Wert nur in genau eine Kategorie fallen darf.

bestellwert = 75 # in Euro

if bestellwert >= 100:
    print("Versandkostenfrei!")
elif bestellwert >= 50:
    print("Versandkosten: 2,99 Euro")
elif bestellwert >= 20:
    print("Versandkosten: 4,99 Euro")
else:
    print("Versandkosten: 6,99 Euro")

Exklusive vs. nicht-exklusive Ausführung

Die Wahl der richtigen Struktur hängt entscheidend davon ab, ob deine Bedingungen exklusiv oder nicht-exklusiv sind. Dies ist eine häufige Fehlerquelle in der Programmierung.

  • Exklusive Ausführung (if-elif oder switch): Ein Zustand schließt die anderen aus. Eine Ampel kann nicht gleichzeitig rot und grün sein. Hier darf nur der erste zutreffende Block ausgeführt werden.
  • Nicht-exklusive Ausführung (Mehrere einzelne ifs): Nutze dies, wenn Eigenschaften völlig unabhängig voneinander sind. Jede Bedingung wird separat geprüft, und es können theoretisch mehrere Blöcke nacheinander ausgeführt werden.
# Nicht-exklusiv: Ein Laptop kann BEIDES haben
hat_wlan = True
hat_bluetooth = True

if hat_wlan:
    print("WLAN-Modul wird aktiviert.")
if hat_bluetooth:
    print("Bluetooth-Modul wird aktiviert.")

Teste dein Wissen

Du programmierst eine Smart-Home-Steuerung. Die Heizung soll nur angehen, wenn die Temperatur unter 18 Grad fällt. Welches Programmierkonzept setzt dieses Verhalten um?

Bereit für mehr?

Thema verstanden?

Teste dein Wissen interaktiv in unserer App. 7 Tage kostenlos, dann nur 5 € im Monat.