Grundlagen der Bedingungslogik in Programmiersprachen

Einleitung

Bedingungen sind das Fundament jeder Programmlogik. Sie ermöglichen es, Entscheidungen im Programmablauf zu treffen und unterschiedliche Ausführungswege zu definieren. Die bekanntesten bedingten Anweisungen sind if, else if, else sowie switch bzw. match in moderneren Sprachen. In diesem Beitrag analysieren wir die Unterschiede zwischen diesen Konstrukten in verschiedenen Programmiersprachen wie Python, JavaScript, Java und C#. Zudem werden Best Practices vorgestellt, um verständlichen und wartbaren Code zu schreiben.

Inhalt

1. Grundlegende Struktur von Bedingungen (if/else)

    Die if-Anweisung ermöglicht es, einen Codeblock nur unter bestimmten Bedingungen auszuführen. Dabei wird ein boolescher Ausdruck ausgewertet, und bei Wahrheitswert true erfolgt die Ausführung.

    Beispiel in Python:

    x = 10
    if x > 5:
        print("x ist größer als 5")
    elif x == 5:
        print("x ist genau 5")
    else:
        print("x ist kleiner als 5")

    Beispiel in Java:

    int x = 10;
    if (x > 5) {
        System.out.println("x ist größer als 5");
    } else if (x == 5) {
        System.out.println("x ist genau 5");
    } else {
        System.out.println("x ist kleiner als 5");
    }

    Beispiel in JavaScript:

    let x = 10;
    if (x > 5) {
        console.log("x ist größer als 5");
    } else if (x === 5) {
        console.log("x ist genau 5");
    } else {
        console.log("x ist kleiner als 5");
    }

    Beispiel in C#:

    int x = 10;
    if (x > 5)
    {
        Console.WriteLine("x ist größer als 5");
    }
    else if (x == 5)
    {
        Console.WriteLine("x ist genau 5");
    }
    else
    {
        Console.WriteLine("x ist kleiner als 5");
    }

    2. Unterschiede bei Wahrheitswerten (Truthy/Falsy)

      Ein wichtiger Aspekt beim Arbeiten mit Bedingungen ist die Definition von Wahrheit. Während Sprachen wie Java und C# strikte Typisierung verlangen (boolesche Ausdrücke sind Pflicht), akzeptieren JavaScript und Python auch sogenannte „truthy“ und „falsy“ Werte.

      Beispiel in JavaScript:

      if ("") {
          console.log("Dieser Code wird nicht ausgeführt");
      }

      Leere Strings, die Zahl 0, null, undefined und NaN sind in JavaScript falsy.

      Beispiel in Python:

      if []:
          print("Nicht wahr")
      else:
          print("Leer, daher falsch")

      Leere Listen, leere Strings, 0, None usw. sind False-äquivalent in Python.

      Java und C# hingegen akzeptieren ausschließlich boolesche Werte im if:

      // Fehler in Java:
      if (1) { ... } // Kompilierfehler

      3. Best Practices für lesbare Bedingungen

        • Bedingungen nicht verschachteln, wenn es vermeidbar ist
        • Bedingungen mit sprechenden Variablennamen kombinieren
        • Negationen vermeiden, wenn sie die Lesbarkeit verschlechtern
        • Bei mehr als 3 Bedingungen: Strukturieren oder switch verwenden

        Beispiel schlecht lesbar:

        if not (user.is_active and not user.is_admin):
            ...

        Besser:

        if user.is_admin or not user.is_active:
            ...

        4. Übungen mit Lösungen

          Aufgabe 1: Schreibe eine Bedingung in JavaScript, die prüft, ob eine Variable input weder leer noch undefined ist.

          Lösung
          if (input !== undefined && input !== "") {
              console.log("Gültiger Input");
          }

          Aufgabe 2: In Python: Prüfe, ob ein Benutzer eingeloggt und Administrator ist.

          Lösung
          if user.is_authenticated and user.is_admin:
              print("Adminbereich sichtbar")

          Aufgabe 3: Was ist das Ergebnis?

          let x = 0;
          if (x) {
              console.log("x ist wahr");
          } else {
              console.log("x ist falsch");
          }
          Antwort:

          x ist falsch, da 0 in JavaScript falsy ist.

          Fazit

          Die Beherrschung bedingter Anweisungen in verschiedenen Programmiersprachen ist eine Kernkompetenz für professionelle Softwareentwicklung. Der richtige Umgang mit if, else und elif sowie ein fundiertes Verständnis der typischen Sprachunterschiede – insbesondere bei Truthy/Falsy-Werten – verbessert die Wartbarkeit und Robustheit von Code erheblich. In den nächsten Kursbeiträgen werden wir tiefer in switch-Statements, Ternäroperatoren und komplexe Bedingungslogik einsteigen.

          Quellen und weiterführende Literatur

            Nach oben scrollen