Switch-Anweisung
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 32 von 71.
Wenn du eine einzelne Variable mit vielen bestimmten Werten vergleichen musst, bietet die switch-Anweisung eine übersichtlichere Alternative zu langen if-elseif-Ketten.
Die switch-Anweisung überprüft eine Variable einmal und vergleicht sie dann mit verschiedenen case-Werten:
<?php
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week";
break;
case "Friday":
echo "Almost weekend";
break;
case "Saturday":
case "Sunday":
echo "Weekend!";
break;
default:
echo "Regular day";
}
?>PHP vergleicht $day mit jedem Fall. Wenn es eine Übereinstimmung findet, führt es den Code dieses Blocks aus.
Die Anweisung break ist entscheidend. Sie weist PHP an, den switch-Block nach der Ausführung des passenden case zu verlassen. Ohne sie würde PHP weiterhin den gesamten darunterstehenden Code ausführen, auch aus anderen case-Zweigen.
Beachte, wie Samstag und Sonntag denselben Code verwenden, indem die Fälle zusammengefasst werden. Der Fall default funktioniert wie ein else. Er wird ausgeführt, wenn kein anderer Fall übereinstimmt.
<?php
$grade = "B";
switch ($grade) {
case "A":
echo "Excellent!";
break;
case "B":
echo "Good job!";
break;
default:
echo "Keep trying!";
}
?>Verwende switch, wenn du eine Variable mit mehreren exakten Werten vergleichst. Für komplexe Bedingungen oder Bereiche bleibe bei if-elseif-Anweisungen.
Aufgabe
EinfachLies einen String command aus der Eingabe, der eine Ampelfarbe darstellt.
Verwende eine switch-Anweisung, um die passende Aktion abhängig von der Farbe zu bestimmen:
- Wenn der Befehl
redlautet, gibStopaus - Wenn der Befehl
yellowlautet, gibSlow downaus - Wenn der Befehl
greenlautet, gibGoaus - Wenn der Befehl
flashing redoderflashing yellowlautet, gibProceed with cautionaus - Gib für jeden anderen Wert
Invalid signalaus
Beispiel:
Wenn die Eingabe green lautet, sollte die Ausgabe wie folgt aussehen:
GoWenn die Eingabe flashing red lautet, sollte die Ausgabe wie folgt aussehen:
Proceed with cautionWenn die Eingabe blue lautet, sollte die Ausgabe wie folgt aussehen:
Invalid signalProbier es selbst
<?php
// Eingabe lesen
$command = trim(fgets(STDIN));
// TODO: Schreibe deinen Code unten mit einer switch-Anweisung
// Bestimme die passende Aktion basierend auf der Ampelfarbe
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler