+1 Daumen
40 Aufrufe

1. EinfĂŒhrung

If-Anweisungen sind Verzweigungen, an denen sich das Programm in verschiedene HandlungsstrĂ€nge aufteilt, die abhĂ€ngig von einer bestimmten Bedingung ausgefĂŒhrt oder nicht ausgefĂŒhrt werden. Dadurch bist du in der Lage, komplexe Probleme mithilfe eines Programms abzubilden und zu lösen.

In meinem Video aus der Reihe "alle Programmiersprachen lernen" habe ich das Konzept der if-Anweisungen allgemein erklÀrt. Wir werden dieses Konzept nun konkret anhand der Programmiersprache Python nachvollziehen.

2. If-Anweisungen in Python

Wir betrachten parallel zur Implementierung einer if-Anweisung in Python die allgemeine Darstellung der if-Anweisung, damit du erkennst, wie nahe die Python-Syntax an diesem Bauplan ist:

IF Bedingung
THEN Anweisungen
ELSE Anweisungen

In Python verwendet man zum Einleiten einer if-Anweisung das SchlĂŒsselwort if.

if

Dahinter wird eine Bedingung geschrieben.

if bedingung

Die Bedingung schließt mit einem Doppelpunkt.

if bedingung:

Wenn die Bedingung zutrifft (der Wahrheitswert dieses Ausdrucks also True ist), wird der nun folgende Anweisungsblock ausgefĂŒhrt.

if bedingung:
  erste_anweisung
  zweite_anweisung
  dritte_anweisung

Der beim Booleanwert True fĂŒr die Bedingung ausgefĂŒhrte Anweisungsblock lĂ€uft bis zum SchlĂŒsselwort else.

if bedingung:
  erste_anweisung
  zweite_anweisung
  dritte_anweisung
else

Alle Anweisungen, die im if-Zweig ausgefĂŒhrt werden sollen, werden mit einem Tab eingerĂŒckt. Alle nicht eingerĂŒckten Anweisungen werden nicht ausgefĂŒhrt und fĂŒhren potentiell zu Fehlern.

Wenn kein else vorhanden ist, lĂ€uft er bis vor die erste Codezeile, die nicht mehr eingerĂŒckt ist. Deshalb solltest du beim Programmieren in Python immer darauf achten, dass die Codezeilen korrekt eingerĂŒckt sind. Ansonsten ist nicht gewĂ€hrleistet, dass dein Programm korrekt ausgefĂŒhrt wird.

Hinter das SchlĂŒsselwort else wird ebenfalls ein Doppelpunkt gesetzt.

if bedingung:
  erste_anweisung
  zweite_anweisung
  dritte_anweisung
else:

Danach folgen die Anweisungen, die im Fall, dass die Bedingung nicht zutrifft (der Wahrheitswert dieses Ausdrucks ist dann False), ausgefĂŒhrt werden.

if bedingung:
  erste_anweisung
  zweite_anweisung
  dritte_anweisung
else:
  vierte_anweisung

Ein ENDIF zum Abschließen der if-Anweisung ist in Python nicht  notwendig.

Angenommen dass wir bei einem negativen Kontostand arbeiten gehen und uns ansonsten ausruhen. Wie können wir das in Python syntaktisch abbilden?

ZunĂ€chst leiten wir den Code mit dem SchlĂŒsselwort if ein und schreiben dahinter die Bedingung "kontostand < 0".

if kontostand < 0

Die Bedingung wird mit einem Doppelpunkt abgeschlossen.

if kontostand < 0:

Nun werden die einzelnen Anweisungen eingerĂŒckt unter die erste Zeile geschrieben. In diesem Fall gibt es nur eine Anweisung, nĂ€mlich die Aktion arbeiten( ):

if kontostand < 0:
  arbeiten()

Danach wird der if-Zweig mit dem SchlĂŒsselwort else beendet, da wir eine Handlungsalternative fĂŒr den Fall, dass das Konto gedeckt (also der Konstostand grĂ¶ĂŸer als oder gleich 0) ist vorgesehen haben, nĂ€mlich Ausruhen.

if kontostand < 0:
  arbeiten()
else:

Jetzt wird wieder mit einem Tab eingerĂŒckt eine Aktion vorgesehen, nĂ€mlich ausruhen( ).

if kontostand < 0:
  arbeiten()
else:
  ausruhen()

Der else-Zweig bzw. das SchlĂŒsselwort else sind nur dann nötig, wenn auch wirklich eine alternative Handlung gewĂŒnscht ist, falls die Bedingung False sein sollte. LĂ€sst man den else-Zweig weg, wĂŒrde man nur im Fall, dass der Kontostand negativ ist, arbeiten und ansonsten einfach nichts machen bzw. im Programmverlauf weiter fortschreiten.

3. Verschachtelte if-Anweisungen in Python

FĂŒr verschachtelte if-Anweisungen ist in Python das SchlĂŒsselwort elif vorgesehen, das ein Kofferwort aus else und if ist. Wenn wir fĂŒr eine Videospielfigur einen Controller programmieren wollen, der beim DrĂŒcken bestimmter Tasten unterschiedliche Aktionen ausfĂŒhrt, können wir das mit einer verschachtelten if-Anweisung lösen.

Die gedrĂŒckten Tasten können wir z. B. mit Strings kodieren. Theoretisch mĂŒssten wir auch noch definieren, wo die TastenanschlĂ€ge herkommen usw., doch wir beschrĂ€nken uns in diesem Artikel darauf, die Syntax von Python zu erlernen.

Beginnen wir also mit dem Formulieren der ersten Bedingung:

if taste == "rechts":

Wenn also die gedrĂŒckte Taste die rechte Taste ist, dann soll der Spieler nach rechts laufen:

if taste == "rechts":
  nach_rechts_gehen()

Und genau diesem GerĂŒst folgend werden jetzt die ĂŒbrigens FĂ€lle (links, unten, oben) implementiert. Wenn man elif verwenden möchte, muss man direkt hinter das SchlĂŒsselwort eine weitere Bedingung definieren und diese ebenfalls mit einem Doppelpunkt abschließen.

if taste == "rechts":
  nach_rechts_gehen()
elif taste == "links":
  nach_links_gehen()
elif taste == "unten":
  ducken()
else:
  springen()

Am Ende der if-Kaskade steht ein else anstelle des elifs. Das bedeutet, dass wenn weder nach rechts, nach links noch nach unten gedrĂŒckt wird, dass dann immer nach oben gesprungen wird, da alle vorherigen FĂ€lle nicht erfĂŒllt wurden. Möchte man hingegen, dass keine Aktion ausgefĂŒhrt wird, wenn keine der Tasten gedrĂŒckt wurde (auch nicht die Taste "Oben"), dann muss man im letzten else-Block auch ein elif verwenden. Dann wird diese Bewegung tatsĂ€chlich auch erst ausgefĂŒhrt, sobald jemand die Taste "Oben" drĂŒckt. Auf diese Art und Weise kann man beliebig viele weitere Tastenbelegungen implementieren.

if taste == "rechts":
  nach_rechts_gehen()
elif taste == "links":
  nach_links_gehen()
elif taste == "unten":
  ducken()
elif taste == "oben":
  springen()

Autor: Florian André Dalwigk


Das Mitglied hat durch den Artikel 50 Bonuspunkte erhalten. Schreib auch du einen Artikel.
geschlossen: Stack-Artikel
von Unknown
von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...