MINT lernen

Vergleiche und Verzweigungen

Wie entscheidet ein Programm, ob es „Gold“ oder „Bronze“ anzeigt — und warum kommt es dabei auf die Reihenfolge der Fragen an?

1

Vergleiche liefern wahr oder falsch

Ein Vergleich prüft zwei Werte und liefert einen boolean: true oder false.

let alter = 14;
console.log(alter >= 12);
console.log(alter === 15);
console.log("14" === 14);
  • === / !==:gleich bzw. ungleich — Wert und Typ müssen passen; "14" === 14 ist false.
  • < / >:kleiner bzw. größer.
  • <= / >=:kleiner oder gleich bzw. größer oder gleich — der Grenzwert gehört dazu.
  • &&:und: beide Bedingungen müssen true sein, z. B. alter >= 12 && alter < 18.
  • ||:oder: mindestens eine Bedingung ist true.
  • !:nicht: kehrt um, !true ist false.
2

Verzweigen mit if und else

Mit if wird ein Block nur ausgeführt, wenn die Bedingung true ist. else if und else bieten Alternativen.

if (punkte >= 80) {
  console.log("Gold");
} else if (punkte >= 60) {
  console.log("Silber");
} else {
  console.log("keine Medaille");
}
  • Bedingung:steht in runden Klammern hinter if.
  • Block:die Anweisungen in geschweiften Klammern { … }, eingerückt.
  • else if:wird nur geprüft, wenn alle Bedingungen davor false waren.
  • else:fängt alles ab, was vorher nicht gepasst hat; hat keine Bedingung.
  • Genau ein Zweig:Von oben nach unten gewinnt die erste wahre Bedingung, der Rest wird übersprungen.

Ziehe den Punktestand auf dem Zahlenstrahl (oder Pfeiltasten, Shift für kleine Schritte). Das Programm zeigt, welche Bedingung geprüft wird und welcher Zweig läuft. Schalte im Balken auf Reihenfolge B um.

Welcher Zweig läuft?

Halte fest: Die Bedingungen werden von oben nach unten geprüft, und nur der Block der ersten wahren Bedingung läuft — deshalb kommt die strengste Bedingung zuerst.

Merke

if (Bedingung) { … } else if (Bedingung) { … } else { … }

3

Allgemeine Hinweise

= statt ===

if (punkte = 80) vergleicht nicht, sondern speichert 80 — die Bedingung ist dann immer wahr. Vergleichen immer mit ===.

Grenzen testen

Teste genau an den Grenzen: bei >= 80 die Werte 79, 80 und 81. Dort stecken die meisten Fehler.

Kein Semikolon hinter if (…)

if (x > 5); { … } — das Semikolon beendet das if, der Block läuft dann immer.

Videos