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.
- Erste Prüfung: Ist es sonnig?
- 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!"
- 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 ersteelif
-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
– undelif
-Bedingungen falsch, wird der optionaleelse
-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.