Verzweigungen

Wie funktionieren Verzweigungen?

Verzweigungen steuern den Programmablauf

Verzweigungen ermöglichen es einem Programm, Entscheidungen zu treffen und je nach Situation unterschiedliche Code-Pfade einzuschlagen. Stell dir vor, du programmierst eine automatische Tür. Das Programm muss prüfen: "Ist eine Person vor der Tür?". Wenn ja, öffnet sich die Tür. Wenn nein, bleibt sie geschlossen. Verzweigungen sind also wie Weggabelungen im Programmcode, die auf Basis von Bedingungen entscheiden, welcher Anweisungsblock als Nächstes ausgeführt wird. Ohne Verzweigungen würde ein Programm immer stur von oben nach unten ablaufen.

Bedingungen mit Operatoren formulieren

Um den Programmfluss zu steuern, formulieren wir Bedingungen, die entweder wahr (True) oder falsch (False) sind. Dabei nutzen wir Vergleichsoperatoren (wie ==, !=, <, >) und logischen Operatoren (AND, OR, NOT). Diese Operatoren ermöglichen es uns, Werte zu prüfen und komplexe Entscheidungskriterien zu erstellen. Zum Beispiel prüft temperatur > 20 AND ist_sonnig == True, ob zwei Bedingungen gleichzeitig erfüllt sind, bevor ein bestimmter Codeblock ausgeführt wird.

temperatur = 25
ist_sonnig = True

if temperatur > 20 AND ist_sonnig == True:
    print("Perfektes Wetter für einen Ausflug!")

Verschachtelte Verzweigungen für komplexe Entscheidunge

Manchmal reicht eine einfache Bedingung nicht aus. Verzweigungen können auch ineinander verschachtelt werden, um komplexere Entscheidungslogiken abzubilden. Stell dir vor, ein Programm soll eine Aktivitätsempfehlung basierend auf Wetter und Temperatur geben.

  1. Erste Prüfung: Ist es sonnig?
  2. Wenn ja (erste Bedingung wahr), zweite Prüfung: Ist die Temperatur über 25 Grad?
    • Wenn ja, gib aus: "Geh schwimmen!"
    • Wenn nein, gib aus: "Mach einen Spaziergang!"
  3. Wenn nein (erste Bedingung falsch), gib aus: "Lies ein Buch drinnen."

Welche Verzweigungsstrukturen gibt es?

Die einfache if-Anweisung: Wenn eine Bedingung zutrifft

Die einfachste Form der Verzweigung ist die if-Anweisung. Sie führt einen Codeblock nur dann aus, wenn die angegebene Bedingung wahr (True) ist. Ist die Bedingung falsch (False), wird der Codeblock einfach übersprungen und das Programm fährt nach der if-Struktur fort.

Stell dir eine automatische Lichtsteuerung vor:

uhrzeit = 20 # Es ist 20 Uhr

# Bedingung: Ist es 18 Uhr oder später?
if uhrzeit >= 18:
    # Dieser Block wird ausgeführt, da 20 >= 18 wahr ist.
    print("Licht einschalten.")

print("Programmende.")

Die if-else-Anweisung: Wenn … ansonsten …

Die if-else-Anweisung bietet zwei mögliche Pfade. Wenn die if-Bedingung wahr ist, wird der erste Codeblock ausgeführt. Ist die Bedingung jedoch falsch, wird stattdessen der Codeblock im else-Zweig ausgeführt. Es wird also immer genau einer der beiden Blöcke durchlaufen.

Beispiel: Überprüfung eines Gutscheincodes.

eingegebener_code = "SOMMER24"
gueltiger_code = "SOMMER24"

if eingegebener_code == gueltiger_code:
    print("Gutscheincode akzeptiert. Rabatt wird angewendet.")
else:
    print("Ungültiger Gutscheincode.")

Mehrere Alternativen prüfen

Manchmal gibt es mehr als zwei mögliche Szenarien. Hierfür verwendet man (in Python) die if-elif-else-Struktur (elif steht für "else if"). Das Programm prüft die Bedingungen nacheinander:

  • Zuerst die if-Bedingung. Ist sie wahr, wird der zugehörige Block ausgeführt, und der Rest der Struktur wird übersprungen.
  • Ist die if-Bedingung falsch, wird die erste elif-Bedingung geprüft. Ist diese wahr, wird ihr Block ausgeführt, und der Rest wird übersprungen.
  • Dies setzt sich für alle weiteren elif-Bedingungen fort.
  • Sind alle vorherigen if– und elif-Bedingungen falsch, wird der optionale else-Block am Ende ausgeführt.

Beispiel: Versandkostenberechnung basierend auf Bestellwert.

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")

Diese Struktur ist nützlich, wenn du eine Reihe von exklusiven Bedingungen hast, von denen nur eine zutreffen soll. Sobald eine wahre Bedingung gefunden wurde, werden die nachfolgenden elif– und else-Zweige nicht mehr betrachtet.

Lernziele

  • die Verwendung von Vergleichs- und logischen Operatoren zur Formulierung von Bedingungen in Verzweigungen erklären, indem demonstriert 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, und wie deren korrekte Syntax aussieht.
  • die grundlegende Funktionsweise und den Zweck von Verzweigungen als Mittel zur Steuerung des Programmablaufs erklären, indem anhand von Codebeispielen erläutert wird, wie diese auf Basis von Bedingungen entscheiden, welcher Codeblock ausgeführt wird.
  • die Unterschiede und Anwendungsfälle der grundlegenden Verzweigungsstrukturen differenzieren, indem für gegebene Problemstellungen die jeweils passendste Struktur 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.

Genug gelesen? Zeit, es wirklich zu können!

Die Theorie aus diesem Artikel ist die perfekte Basis. In der asyoube Lernplattform wendest du dieses Wissen an, bekommst persönliches Feedback und bereitest dich interaktiv auf deine Ausbildung oder deine Prüfungen vor.

Für Ausbilder & Unternehmen

Möchten Sie Ihr gesamtes Team mit asyoube ausbilden? Entdecken Sie unsere B2B-Lösung mit einfacher Verwaltung, Fortschritts-Tracking für Ihre Azubis und attraktiven Team-Preisen.