+1 Daumen
182 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