04 Mehrere Fälle mit switch unterscheiden

Orientierung

Was brauchst du als Basiswissen?

Du kannst Bedingungen mit if und else formulieren und Funktionen aufrufen.

Worum geht es?

Eine Figur kann stehen, laufen, springen oder sich ducken. Viele einzelne if-Abfragen werden dabei schnell unübersichtlich. `switch` vergleicht einen Wert mit mehreren festgelegten Fällen.

Was ist das Ziel?

Du kannst entscheiden, wann switch sinnvoll ist, und eine switch-Verzweigung mit `case`, `break` und `default` schreiben.

Erarbeitung

Theorie

Aufgaben zum Einstieg

switch (befehl) { case "links": console.log("Die Figur läuft nach links."); break; case "rechts": console.log("Die Figur läuft nach rechts."); break; default: console.log("Unbekannter Befehl"); }
Aufgabe 1
Was geschieht bei `befehl = "rechts"`?
Aufgabe 2
Was geschieht bei `befehl = "RECHTS"`?
Aufgabe 3
Entferne das erste `break`. Beobachte und erkläre das Ergebnis.
Aufgabe 4
Schreibe denselben Ablauf mit if, else if und else.
Aufgabe 5
Nenne einen Fall, in dem if besser geeignet ist.

Größere Aufgabe: Steuerpult einer Spielfigur

Lade die Dateien herunter:

Steuerpult

JavaScript

Im Einstieg werden zuerst die Buttons und anschließend die Funktion `fuehreBefehlAus` betrachtet. Die bekannten EventListener sind bereits eingetragen. Das Attribut `data-befehl` speichert den zum Button gehörenden Befehl. Auch wieder eine interessante Sache gelernt!

Aufgabe 6
Ergänze die Fälle `rechts`, `hoch` und `runter`. Zeige jeweils eine passende Meldung an. Die Variablen posX und posY beinhalten die relative Position.
Aufgabe 7
Verändere bei links und rechts zusätzlich die Variable `position` um 10. Zeige die Position auf der Seite an.
Aufgabe 8
Die Figur darf den Bereich von 0 bis 300 nicht verlassen. Prüfe die neue Position mit if.
Aufgabe 9
Führe absichtlich einen unbekannten Befehl aus und prüfe, ob `default` funktioniert.

Aufgaben zum Einordnen

Entscheide jeweils zwischen switch und if. Begründe kurz.

Aufgabe 10
Eine Ampelfarbe ist rot, gelb oder grün.
Aufgabe 11
Eine Punktzahl ist größer als 100.
Aufgabe 12
Eine gedrückte Taste ist ArrowLeft, ArrowRight oder Space.
Aufgabe 13
Eine Spielfigur hat weniger als 20 Lebenspunkte.

Rück- und Ausblick

Was muss man wissen/können?

switch eignet sich, wenn ein Wert mit mehreren festen Werten verglichen wird. `break` verhindert, dass der nächste Fall ebenfalls ausgeführt wird. `default` behandelt alle nicht vorgesehenen Werte.

Was können anschließende Themen sein?

Für Spiele müssen Zustände nicht nur ausgewählt, sondern viele Male pro Sekunde verändert und dargestellt werden.