edubun
Deutsch

Entscheidungen mit if und else

Eine if-Anweisung führt einen Codeblock nur aus, wenn ihre Bedingung true ist. Mit else if prüft JavaScript Bedingungen von oben und hält bei der ersten wahren an.

Code nur manchmal ausführen

Jedes Programm bisher hat jede Zeile jedes Mal ausgeführt. Nützliche Programme verhalten sich in verschiedenen Situationen verschieden: Ein Spiel zeigt "You win" nur, wenn der Punktestand hoch genug ist, und ein Shop berechnet eine Liefergebühr nur bei kleinen Bestellungen. Mit der if-Anweisung trifft JavaScript solche Entscheidungen.

const temperature = 31;
if (temperature >= 30) {
  console.log("Hot day. Drink water.");
}
console.log("Done");

Die Bedingung steht in runden Klammern nach dem Wort if. Das ist ein beliebiger Ausdruck, der einen Boolean ergibt, meist ein Vergleich aus der letzten Einheit. Der Code, der laufen soll, wenn sie true ist, steht in geschweiften Klammern, die einen Block bilden. Ist die Bedingung false, überspringt JavaScript den ganzen Block und macht nach der schließenden Klammer weiter. Oben werden beide Zeilen ausgegeben. Setz temperature auf 20, und nur "Done" erscheint. Die Zeilen im Block sind um zwei Leerzeichen eingerückt. JavaScript braucht die Einrückung nicht, aber sie zeigt auf einen Blick, welche Zeilen zum if gehören, und jeder erfahrene Programmierer erwartet sie.

else: der andere Weg

Oft willst du eine Sache, wenn die Bedingung true ist, und eine andere, wenn sie false ist. Füg einen else-Block hinzu. Genau einer der beiden Blöcke läuft, nie beide und nie keiner.

const n = 7;
if (n % 2 === 0) {
  console.log(n + " is even");
} else {
  console.log(n + " is odd");
}
// gibt aus: 7 is odd

else if: mehr als zwei Möglichkeiten

Bei mehreren Möglichkeiten verkettest du Bedingungen mit else if. JavaScript prüft sie von oben. Sobald eine true ist, führt es diesen Block aus und überspringt alle übrigen, selbst wenn spätere Bedingungen auch true wären. Das letzte else fängt alles auf, was oben nirgends gepasst hat.

const score = 72;
if (score >= 90) {
  console.log("A");
} else if (score >= 80) {
  console.log("B");
} else if (score >= 70) {
  console.log("C");
} else {
  console.log("F");
}
// gibt aus: C

Die Reihenfolge der Bedingungen ist wichtig. Bei 95 Punkten ist schon der erste Test true, und A wird ausgegeben. Stünden die Tests andersherum und begännen mit score >= 70, würde 95 schon beim ersten Test anhalten und C ausgeben. Wenn sich die Bereiche so überschneiden, setz die engste Bedingung an den Anfang. Code von Hand durchzugehen, ist eine gute Gewohnheit: Wähl einen Wert, lies von oben und sag laut, welchen Zweig er nimmt.

Verschachteln und verknüpfen

Ein Block kann eine weitere if-Anweisung enthalten, das nennt man Verschachteln. Tiefe Verschachtelung vermeidest du oft, indem du Bedingungen mit && und || aus der letzten Einheit verknüpfst. Diese beiden Codestücke erledigen dieselbe Aufgabe, und das zweite ist leichter zu lesen:

if (age >= 8) {
  if (height >= 120) {
    console.log("You can ride");
  }
}

if (age >= 8 && height >= 120) {
  console.log("You can ride");
}

Der Bedingungsoperator

Wenn du nur zwischen zwei Werten wählen musst, gibt es eine kompakte Form, den Bedingungsoperator (ternären Operator): condition ? valueIfTrue : valueIfFalse. Zum Beispiel const label = n % 2 === 0 ? "even" : "odd";. Nutze ihn für kurze Wertauswahlen. Für alles, was mehrere Anweisungen ausführt, ist ein normales if und else klarer.

Ein häufiger Ausrutscher ist ein einzelnes Gleichheitszeichen in der Bedingung: if (score = 100). Das speichert 100 in score, statt zu vergleichen, und der Block läuft jedes Mal. Vergleiche immer mit ===.

if (Bedingung) { ... } else if (andere Bedingung) { ... } else { ... }

BedingungDer boolesche Ausdruck in if ( )
BlockIn { } zusammengefasste Anweisungen
elseLäuft, wenn die if-Bedingung false ist
else ifEine weitere Bedingung, nur geprüft, wenn die darüber false waren
ZweigEiner der möglichen Wege durch eine if-Anweisung
VerschachtelnEin if in einem anderen if
ternärer OperatorBed ? a : b wählt einen von zwei Werten
EinrückungLeerzeichen am Zeilenanfang innerhalb eines Blocks
  1. Was gibt das aus?
    const x = 5;
    if (x > 3) {
      console.log("big");
    } else {
      console.log("small");
    }
  2. Was gibt das aus?
    const x = 2;
    if (x > 3) {
      console.log("big");
    }
    console.log("end");
    • big, then end
    • Only end
    • Nothing
  3. Was gibt das aus?
    const t = 18;
    if (t >= 30) {
      console.log("hot");
    } else if (t >= 15) {
      console.log("mild");
    } else {
      console.log("cold");
    }
  4. Was gibt das aus?
    const s = 95;
    if (s >= 70) {
      console.log("C");
    } else if (s >= 90) {
      console.log("A");
    }
  5. Wie viele Blöcke laufen in einer Kette aus if / else if / else höchstens?
  6. Was gibt das aus?
    const n = 10;
    console.log(n > 5 ? "yes" : "no");
  7. Was gibt das aus?
    const a = 4;
    const b = 9;
    if (a > 5 || b > 5) {
      console.log("one");
    } else {
      console.log("none");
    }
  8. Was gibt das aus?
    const a = 4;
    const b = 9;
    if (a > 5 && b > 5) {
      console.log("both");
    } else {
      console.log("not both");
    }
  9. Was ist an if (score = 100) falsch?
    • Nichts
    • Es speichert 100, statt zu vergleichen; === verwenden
    • Es braucht innen ein Semikolon
  10. Was gibt das aus?
    let msg = "start";
    const n = 0;
    if (n) {
      msg = "nonzero";
    }
    console.log(msg);
Das Wichtigste
  • if (Bedingung) { ... } führt den Block nur aus, wenn die Bedingung true ist.
  • else läuft, wenn sie false ist; genau einer der beiden läuft.
  • else-if-Ketten werden von oben geprüft; die erste wahre gewinnt.
  • Bei überlappenden Bereichen die engste Bedingung zuerst.
  • Mit === vergleichen, nie mit einem einzelnen =.
Quellen zu diesem Kurs (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Abgerufen: 2026-10-17