THM Notes
WebP 1
VorlesungSoSe 26TypeScriptifelseswitchSchleifenforwhileKontrollfluss

WebP 1 – Auswahl und Schleifen

12. Mai 2026WebP 1

Zusammenfassung

Alle bisherigen TypeScript-Anweisungen wurden der Reihe nach von oben nach unten ausgeführt. Mit Auswahlen (if/else, switch) kann ein Programm entscheiden, welchen Code-Pfad es einschlägt — abhängig von einer Bedingung. Mit Schleifen (while, for) kann Code beliebig oft wiederholt werden. Diese zwei Kontrollstrukturen sind der Kern jeder Programmlogik: Reagiere auf Eingaben, wiederhole Aufgaben, verarbeite Listen.

Schlüsselbegriffe

Bedingte Anweisung

Eine Anweisung, die nur ausgeführt wird, wenn eine bestimmte Bedingung erfüllt ist. In TypeScript: if (Bedingung) { ... }. Vergleichbar mit 'Wenn ... dann ...' im Alltag.

if/else

Die grundlegende Auswahl-Struktur. if prüft eine Bedingung. Falls wahr, wird der erste Block ausgeführt. Falls falsch, der else-Block (optional). Mehrere Bedingungen werden mit else if verkettet.

switch/case

Eine Mehrfachauswahl, die einen Wert gegen eine endliche Menge von Optionen vergleicht. Sinnvoll, wenn viele konkrete Fälle eines enum oder ähnlicher Werte unterschieden werden sollen.

Schleife

Eine Kontrollstruktur, bei der ein Code-Block so lange wiederholt wird, wie eine Bedingung erfüllt ist. In TypeScript: while (Bedingung) { ... } oder for (Init; Bedingung; Schritt) { ... }.

while-Schleife

Führt den Code-Block aus, solange die Bedingung true ist. Wenn die Bedingung von Anfang an false ist, wird der Block gar nicht ausgeführt. Für unbekannte Anzahl von Iterationen.

for-Schleife

Zählschleife mit drei Teilen im Kopf: Initialisierung, Bedingung, Schrittanweisung. Kompakt und übersichtlich für bekannte Anzahl von Iterationen oder Array-Durchläufe.

Falsy

Werte, die in einer Bedingung automatisch als false behandelt werden: 0, leerer String '', undefined, null, NaN. Alle anderen Werte gelten als true (truthy).

Konditionaloperator

Auch ternärer Operator genannt. Eine Kurzschreibweise für eine einfache if/else-Bedingung, die einen Wert zurückgibt. Syntax: Bedingung ? WertWennWahr : WertWennFalsch.

Schleifenbedingung

Die logische Bedingung im Schleifenkopf, die vor (oder nach) jedem Durchlauf ausgewertet wird. Bestimmt, ob die Schleife fortgesetzt oder beendet wird.

Kernkonzepte

Auswahlen: if / else

Die einfachste Form der Entscheidung: eine Bedingung und eine Aktion.
// Einarmiges if (Bedingung ohne Gegenfall)
if (element !== undefined) {
  element.innerText = "Das Element existiert.";
}
 
// Zweiarmiges if/else (Bedingung mit Gegenfall)
if (alter >= 18) {
  console.log("Alles erlaubt");
} else {
  console.log("Nichts erlaubt");
}
Die Bedingung steht in runden Klammern (...) und muss einen boolean-Wert ergeben. Der Code-Block in den geschweiften Klammern {...} wird nur ausgeführt, wenn die Bedingung true ist.

Mehrere Fälle: else if

// Jugendschutz-Beispiel: drei Fälle
if (alter >= 18) {
  console.log("Alles erlaubt");
} else if (alter >= 16) {
  console.log("Nur Bier & Wein");
} else {
  console.log("Nichts erlaubt");
}
Tipp
Immer vom allgemeinsten zum speziellsten Fall gehen: Zuerst den häufigsten Fall (>= 18), dann die Ausnahmen. So landet der häufigste Fall sofort im richtigen Zweig.

Bedingungen kombinieren

// Anmeldung: Benutzername UND Passwort müssen stimmen
if (benutzername === "admin" && passwort === "geheim") {
  console.log("Angemeldet!");
}
 
// Rabatt: Schüler ODER Rentner
if (isStudent || isRentner) {
  preis = preis * 0.8;
}
Statt drei verschachtelter if-Blöcke kann man Bedingungen mit && kombinieren:
// Verschachtelt (unübersichtlich):
if (Bedingung1) {
  if (Bedingung2) {
    if (Bedingung3) {
      Anweisung;
    }
  }
}
 
// Kombiniert (besser lesbar):
if (Bedingung1 && Bedingung2 && Bedingung3) {
  Anweisung;
}

Falsy-Werte

In TypeScript werden bestimmte Werte automatisch als false behandelt, wenn sie in einer Bedingung stehen:
WertGilt als
0false
"" (leerer String)false
undefinedfalse
nullfalse
NaN (Not a Number)false
Alle anderen Wertetrue
// Kurze Schreibweise: Existiert das Element?
if (element) {                    // statt: if (element !== undefined)
  element.innerText = "Gefunden";
}
 
// Boolean-Variable direkt prüfen:
if (isAdmin) {                    // statt: if (isAdmin === true)
  showAdminPanel();
}
if (!isAdmin) {                   // statt: if (isAdmin === false)
  showLoginPage();
}

switch / case: Mehrfachauswahl

Wenn viele konkrete Werte eines Typs unterschieden werden sollen (typisch bei enum), ist switch übersichtlicher als viele else if.
enum WorldElement { FLOOR, WALL, BEEPER }
 
let position: WorldElement = WorldElement.FLOOR;
 
switch (position) {
  case WorldElement.FLOOR:
    console.log("Vor Karel ist freier Boden.");
    break;
  case WorldElement.WALL:
    console.log("Vor Karel ist eine Wand.");
    break;
  case WorldElement.BEEPER:
    console.log("Vor Karel liegt ein Beeper.");
    break;
}
Klausurrelevant
Das break am Ende jedes case-Blocks ist zwingend nötig! Ohne break läuft das Programm in den nächsten case-Block weiter (sog. "fall-through") — fast immer ein Fehler.

Schleifen

while — "solange wie"

let water: number = 0;
 
while (water < 100) {
  console.log(`Das Wasser kocht bei ${water} Grad noch nicht.`);
  water += Math.random() * 5 + 5;  // Erhöhe um 5–10
}
 
console.log("Das Wasser kocht!");
Der Code-Block wird wiederholt, solange die Bedingung true ist. Wenn die Bedingung von Anfang an false ist, wird der Block gar nicht ausgeführt.
Achtung
Endlosschleife: Wenn die Bedingung niemals false wird, läuft die Schleife unendlich. Das blockiert das Programm (und leert bei mobilen Geräten schnell den Akku). Immer sicherstellen, dass die Bedingung irgendwann false wird.

do/while — mindestens einmal

Eine Sonderform: Der Block wird erst ausgeführt, dann die Bedingung geprüft.
do {
  // Dieser Block läuft mindestens einmal!
  eingabe = prompt("Bitte Passwort eingeben:");
} while (eingabe !== "geheim");

for — Zählschleife

Die for-Schleife fasst Start, Bedingung und Schritt kompakt in einer Zeile zusammen:
// Syntax: for (Initialisierung; Bedingung; Schrittanweisung)
for (let i: number = 0; i < 5; i++) {
  console.log(`Iteration ${i}`);
}
// Gibt aus: 0, 1, 2, 3, 4
Array mit for-Schleife durchlaufen:
let namen: string[] = ["Anna", "Ben", "Christin", "Dennis"];
 
for (let i: number = 0; i < namen.length; i++) {
  console.log(`${namen[i]} ist Nummer ${i + 1} auf der Liste.`);
}
Tipp
namen.length gibt die Anzahl der Elemente zurück. Da der Index bei 0 beginnt, lautet die Bedingung i < namen.length (nicht <=). Das letzte gültige Element steht an namen[namen.length - 1].
Vergleich der Schleifentypen:
SchleifeWann einsetzen
whileAnzahl der Durchläufe unbekannt (z. B. "solange Benutzer keinen gültigen Wert eingibt")
forAnzahl der Durchläufe bekannt oder Array-Durchlauf
do/whileCode soll mindestens einmal ausgeführt werden

Lernkarten

Frage

Was ist der Unterschied zwischen == und === bei Bedingungen?

Antwort

== vergleicht nur den Wert (mit automatischer Typumwandlung): '3' == 3 ist true. === vergleicht Wert UND Typ: '3' === 3 ist false. Immer === verwenden.

Frage

Welche Werte gelten in TypeScript als 'falsy' (also false in einer Bedingung)?

Antwort

0, leerer String '', undefined, null und NaN. Alle anderen Werte gelten als true (truthy). Nützlich für: if (element) statt if (element !== undefined).

Frage

Wann ist switch/case sinnvoller als if/else if?

Antwort

Wenn ein Wert gegen eine endliche, bekannte Menge von Optionen verglichen wird (typisch bei enum). switch ist dann übersichtlicher als viele else if-Blöcke. break am Ende jedes case nicht vergessen!

Frage

Was sind die drei Teile im Kopf einer for-Schleife?

Antwort

1. Initialisierung (z. B. let i = 0), 2. Bedingung (z. B. i < namen.length), 3. Schrittanweisung (z. B. i++). Merkhilfe: Start – Stopp – Schrittweite.

Frage

Was ist eine Endlosschleife und warum ist sie ein Problem?

Antwort

Eine Schleife, deren Bedingung niemals false wird, läuft unendlich. Das blockiert das Programm und kann den Browser zum Absturz bringen. Immer sicherstellen, dass der Schleifeninhalt die Bedingung irgendwann erfüllt.

Frage

Was macht das Schlüsselwort continue in einer Schleife?

Antwort

Es bricht den aktuellen Schleifendurchlauf ab und springt sofort zum nächsten Durchlauf (zur Auswertung der Schleifenbedingung bzw. Schrittanweisung).

Frage

Was ist ein ternärer Operator?

Antwort

Eine Kurzschreibweise für if-else. Syntax: Bedingung ? Ausdruck1 : Ausdruck2. Ist die Bedingung wahr, wird Ausdruck1 ausgeführt, andernfalls Ausdruck2.

Übungsfragen

Was gibt folgender Code aus: if (0) { console.log('A'); } else { console.log('B'); }

Welches Schlüsselwort beendet einen case-Block in switch/case?

Ein Array hat 8 Elemente. Bis zu welchem Index läuft die Schleife: for (let i = 0; i < array.length; i++)?

Was ist der Unterschied zwischen while und do/while?

Was gibt console.log aus: for (let i = 1; i <= 3; i++) { console.log(i); }

Was ist die Ausgabe des folgenden Codes: let i = 0; while (i < 3) { i++; } console.log(i);