7.3.5 If- und Switch-Anweisungen

Bedingte Anweisungen sind ein zentraler Bestandteil jeder Programmiersprache. In JavaScript ermöglichen die Kontrollstrukturen if und switch, dass die Programmausführung je nach Bedingung verschiedene Anweisungen ausführt..

if-Anweisung

Die if-Anweisung gehört zu den am häufigsten verwendeten Kontrollstrukturen. Sie überprüft, ob Bedingungen erfüllt sind. Die Logik lautet: "Wenn die Bedingung erfüllt ist, führe Anweisungen A aus, andernfalls führe Anweisungen B aus." (Der else-Teil ist optional.)

Beispiel: if-Anweisung

if (Bedingung1 === Bedingung2) {
  // wenn true, dann Anweisung A ausführen
} else {
  // wenn false, dann Anweisung B ausführen
}

if (tag === "Samstag") {
  console.log("Hurra, es ist Samstag");
} else {
  console.log("Heute ist " + tag);
}

Hinweis: Achten Sie darauf, den Vergleichsoperator === nicht mit dem Zuweisungssymbol = zu verwechseln. Die Verwendung von = anstelle von === führt zu Fehlern.

Kurzschreibweise für if-else

In JavaScript gibt es auch eine Kurzschreibweise für if-else, die als ternärer Operator bezeichnet wird. Sie wird verwendet, um einfache Bedingungen kompakter zu schreiben.

Bedingung ? Ausdruck_wenn_true : Ausdruck_wenn_false;

Beispiel:

1
2
3
const tag = "Samstag";
const text = tag === "Samstag" ? "Hurra, es ist Samstag" : "Heute ist " + tag;
console.log(text);
  • Vorteil: Reduziert die Länge des Codes und verbessert die Lesbarkeit bei einfachen Bedingungen.
  • Einschränkung: Für komplexere Bedingungen ist die klassische if-else-Schreibweise klarer.

switch-Anweisung

Die switch-Anweisung ist eine Alternative zur if-Anweisung, wenn mehrere Werte überprüft werden müssen.

Beispiel: if-Anweisungen mit mehreren Bedingungen

if (wochentag === "Montag") {
  console.log("Wecker auf 7:00 Uhr");
} else if (wochentag === "Dienstag") {
  console.log("Wecker auf 7:00 Uhr");
} else if (wochentag === "Mittwoch") {
  console.log("Wecker auf 7:00 Uhr");
} else if (wochentag === "Donnerstag") {
  console.log("Wecker auf 8:00 Uhr");
} else if (wochentag === "Freitag") {
  console.log("Wecker auf 7:00 Uhr");
} else if (wochentag === "Samstag") {
  console.log("Wecker auf 9:00 Uhr");
} else if (wochentag === "Sonntag") {
  console.log("Wecker aus");
} else {
  console.log("Ungültiger Wochentag");
}

Mit einer switch-Anweisung lässt sich die gleiche Logik übersichtlicher umsetzen.

switch (wochentag) {
  case "Montag":
    text = "Wecker auf 7:00 Uhr";
    break;
  case "Dienstag":
    text = "Wecker auf 7:00 Uhr";
    break;
  case "Mittwoch":
    text = "Wecker auf 7:00 Uhr";
    break;
  case "Donnerstag":
    text = "Wecker auf 8:00 Uhr";
    break;
  case "Freitag":
    text = "Wecker auf 7:00 Uhr";
    break;
  case "Samstag":
    text = "Wecker auf 9:00 Uhr";
    break;
  case "Sonntag":
    text = "Wecker aus";
    break;
  default:
    text = "Ungültiger Wochentag";
}
console.log(text);

Vorteile der switch-Anweisung

  • Die Werte in der switch-Klammer können einfach verglichen werden.
  • break verhindert, dass weitere case-Blöcke durchlaufen werden.
  • Der default-Block sorgt dafür, dass ein Standardwert zurückgegeben wird, falls kein case zutrifft. Dies entspricht dem else-Teil bei einer if-Anweisung.

Besonderheit

Ein großer Vorteil von switch zeigt sich, wenn ab einer bestimmten Stelle alle case durchlaufen werden sollen. In diesem Fall könnten die break-Anweisungen weggelassen werden, um z. B. Weckereinstellungen ab Mittwoch für den Rest der Woche auszugeben:

switch (wochentag) {
  case "Mittwoch":
    console.log("Wecker auf 7:00 Uhr");
  case "Donnerstag":
    console.log("Wecker auf 8:00 Uhr");
  case "Freitag":
    console.log("Wecker auf 7:00 Uhr");
  case "Samstag":
    console.log("Wecker auf 9:00 Uhr");
  case "Sonntag":
    console.log("Wecker aus");
    break;
  default:
    console.log("Ungültiger Wochentag");
}