Einfache Verzweigung (A)

9.1.1. Einfache Verzweigung (A)#

if

Die einfachste Form der Fallunterscheidung prüft ob ein logischer Ausdruck \(P_0\) eingetreten. Nur wenn dies zutrifft, wird der Codeblock \(B_0\) ausgeführt:

if P0:
    B0
x = 2

if x <= 2:
    x += 1
    print(f'x: {x}')
x: 3

if-else

In der nächsten Variante wird ein Codeblock \(B_0\) nur dann ausgeführt, sofern ein logischer Ausdruck \(P_0\) True ergibt. Ist dies nicht der Fall, so wird ein Alternativblock (else) \(B_1\) ausgeführt.

if P0:
    B0
else:
    B1
x = 2

if x <= 2:
    x += 1
    print(f'x: {x}')
else:
    print(f'x > 2')
print(x)
x: 3
3

if-elif

In der nächsten Variante wird höchstens ein Codeblock \(B_i\) nur dann ausgeführt, sofern ein logischer Ausdruck \(P_i\) True ergibt. Gibt es mehr als einen logischen Ausdruck \(P_i\) welcher True ergibt, so wird der erste Codeblock (der mit dem kleinsten \(i\)) ausgeführt.

if P0:
    B0
elif P1:
    B1
elif P2
    B2
...
x = 2

if x <= 2:
    print(f'x <= 2')
    x += 1
elif x <= 5:
    print(f'x <= 5')
    x += 2
elif x <= 6:
    print(f'x <= 4')
    x += 6
print(x)
x <= 2
3

9.1.1.1. Vorsicht#

Aufeinanderfolgende if-Statements sind nicht eine sondern mehrere Fallunterscheidungen, denn jedes if-Statement leitet eine neue Fallunterscheidung ein!

x = 2

if x <= 2:
    print(f'x <= 2')
    x += 1
if x <= 5:
    print(f'x <= 5')
    x += 2
if x <= 7:
    print(f'x <= 7')
    x += 10
else:
    print(f'x > 2 and x > 5 and x > 7')
    x = 2   
print(x)
x <= 2
x <= 5
x <= 7
15

Aufeinander folgende Fallunterscheidungen

Es ist zu empfehlen aufeinanderfolgende if-Statements durch eine Leerzeile zu trennen.

x = 2

if x <= 2:
    print(f'x <= 2')
    x += 1
    
if x <= 5:
    print(f'x <= 5')
    x += 2
    
if x <= 7:
    print(f'x <= 7')
    x += 10
else:
    print(f'x > 2 and x > 5 and x > 7')
    x = 2   
print(x)
x <= 2
x <= 5
x <= 7
15