Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Lies 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 red lautet, gib Stop aus
  • Wenn der Befehl yellow lautet, gib Slow down aus
  • Wenn der Befehl green lautet, gib Go aus
  • Wenn der Befehl flashing red oder flashing yellow lautet, gib Proceed with caution aus
  • Gib für jeden anderen Wert Invalid signal aus

Beispiel:

Wenn die Eingabe green lautet, sollte die Ausgabe wie folgt aussehen:

Go

Wenn die Eingabe flashing red lautet, sollte die Ausgabe wie folgt aussehen:

Proceed with caution

Wenn die Eingabe blue lautet, sollte die Ausgabe wie folgt aussehen:

Invalid signal

Probier 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


?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-PHP-Compiler