Eine andere Möglichkeit in JavaScript, um Code nur bedingt auszuführen, sind switch-Anweisungen. Bei diesen vergleicht man einen bestimmten Wert mit verschiedenen Alternativen. Bei Übereinstimmung wird der entsprechende Code ausgeführt.

<script>
var benutzerwahl = prompt("japanisch, jodhaltig, jähzornig - " +
		"Wähle eines dieser Adjektive und ich " +
		"finde ein passendes Substantiv!");
switch ( benutzerwahl ) {
	case "japanisch":
		alert("japanische Superhelden");
		break;
	case "jodhaltig":
		alert("jodhaltiges Speisesalz");
		break;
	case "jähzornig":
		alert("jähzorniger Sturkopf");
		break;
	default:
		alert("Was auch immer du eingetippt hast: " +
		"Das stand nicht zur Auswahl!");
}
</script>

In diesem Beispiel wird die Eingabe des Benutzers mit den drei string-Werten "japanisch", "jodhaltig" und "jähzornig" verglichen (der Vergleich findet übrigens mit dem strikten Gleichheitsoperator === statt, es wird also auch auf den Datentyp geachtet). Der Referenzwert wird in runden Klammern direkt nach der switch-Anweisung angegeben. Die Liste mit den Fallunterscheidungen kommt danach in einen von geschweiften Klammern umgebenen Codeblock. Die verschiedenen Fälle (engl. case) werden aufgelistet. Dem Vergleichswert folgt dabei immer ein Doppelpunkt. Dann können mehrere Befehle folgen. Das JavaScript-Schlüsselwort break dient dazu, die Abarbeitung der Befehle zu stoppen. Fehlt es innerhalb eines Falls, der tatsächlich eintritt, so werden die Befehle des nächstes Falls weiter ausgeführt (auch wenn dieser Fall eigentlich gar nicht zutrifft). Das geht so lange, bis der JavaScript-Interpreter auf ein break trifft oder der Codeblock durch die schließende geschweifte Klammer beendet wird.
Abgeschlossen wird die Fallunterscheidung oben durch einen Standardfall (engl. default), der immer aktiv wird, wenn die switch-Anweisung bis dahin noch nicht durch ein break beendet wurde. Allerdings ist die Angabe eines solchen Standardfalls optional, man kann den letzten Block also auch komplett weg lassen (dann bräuchte man auch das break im letzten Fall nicht, da der Codeblock an der Stelle zu Ende sowieso abgeschlossen wäre).

Aufgabe

Erstelle ein Skript, das den Benutzer zur Eingabe des Wochentags auffordert. Gib ihm anschließend für die unterschiedlichen Möglichkeiten jeweils das Tagesmenü deiner (imaginären) Speisekarte aus.