Skip to main content

Verzweigungen

Nun lernen wir ein sehr wichtiges Konzept kennen, nämlich Verzweigungen. Diese erlauben uns Teile vom Code nur dann auszuführen, wenn eine bestimmte Bedingung erfüllt ist. Die Bedingung formulieren wir mithilfe von Boolschen Ausdrücken. Wir illustrieren dies an einem Beispiel, welches wir im Folgenden eingehend diskutieren:

a = 5
if a > 5:
print("a ist grösser als 5")
else:
print("a ist kleiner oder gleich 5")

Um eine Bedingung zu prüfen, nutzen wir die if-Anweisung von Python. Diese besteht aus vier Teilen:

  1. Dem Wort if gefolgt von einem boolschen Ausdruck (hier a > 5) und anschliessendem Doppelpunkt.
  2. Einem Block bestehend aus Anweisungen und Ausdrücken, die ausgeführt werden, falls die Bedingung den Wert True hat. Diese müssen alle gleich eingerückt sein, also gleich viele Leerzeichen vor dem Befehl haben.
  3. Dem Wort else gefolgt von einem Doppelpunkt.
  4. Einem Block bestehend aus Anweisungen und Ausdrücken, die ausgeführt werden, falls die Bedingung den Wert False hat. Auch diese müssen alle gleich eingerückt sein.

Unser Programm würde also a ist kleiner oder gleich 5 ausgeben, da der Ausdruck a > 5 in unserem Fall den Wert False hat.

Um dieses Konzept im Detail zu verstehen, ist es wieder am einfachsten, wenn Sie damit experimentieren:

Experimente

  • Setzen Sie den Wert der Variablen a so, dass Sie die Ausgabe a ist grösser als 5 bekommen.
  • Vertauschen Sie die beiden Ausgaben. Wie müssen Sie dann die Bedingung anpassen, so dass die Ausgabe wider korrekt ist?

Zwei weitere Varianten der if-Anweisung

Die oben vorgestellte Variante ist die gebräuchlichste Form einer Verzweigung. Es gibt aber zwei weitere Varianten, die sich im Programmieralltag manchmal als nützlich erweisen.

Die erste Variante entspricht einer Vereinfachung: Wir können nämlich den else-Fall auch weglassen. Dies ist immer dann nützlich, wenn wir einen Fall speziell behandeln wollen, danach aber in jedem Fall die gleiche Aktion durchführen wollen. Dies wird in folgendem Programm illustriert:

if a <= 0:
print("a muss immer grösser als 0 sein")
a = 1
print(a)

In diesem Programm wird geprüft ob a kleiner oder gleich 0 ist. Falls ja, wird der Wert auf 1 korrigiert. In jedem Fall wird jedoch danach der aktuelle Wert von a ausgegeben.

Bei der zweiten Variante haben wir mehr als einen Fall, den wir unterscheiden wollen:

if a < 0:
print("a ist negativ")
elif a == 0:
print("a ist gleich 0")
else:
print("a ist grösser 0")

In diesem Fall haben wir die Möglichkeit eine zweite (oder auch mehrere) weitere Bedingungen mithilfe der elif Klausel zu testen. Diese funktioniert nach genau demselben Prinzip wie die normale if Klausel. Der else-Zweig wird nur ausgeführt, wenn keine der angegebenen Bedingungen zutrifft.

Experimente

  • Können Sie das Beispiel auch mit drei einzelnen if-Anweisungen lösen? Was finden Sie besser? Warum?
  • Definieren Sie sich zwei Variablen itsRaining und iAmTired mit Wahrheitswerten. Schreiben Sie dann mithilfe von Verzweigungen eine Entscheidungshilfe und geben anhand der Werte dieser Variablen aus, was Sie heute Abend tun werden.

Fragen und Kommentare

Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.