Menu
Coddy logo textTech

Instrukcja switch

Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 32 z 71.

Gdy musisz porównać pojedynczą zmienną z wieloma konkretnymi wartościami, instrukcja switch stanowi czytelniejszą alternatywę dla długich łańcuchów if-elseif.

Instrukcja switch sprawdza zmienną raz, a następnie dopasowuje ją do różnych wartości case:

<?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 porównuje $day z każdym przypadkiem. Gdy znajdzie dopasowanie, wykonuje kod z tego bloku.

Instrukcja break jest kluczowa. Informuje PHP, że ma opuścić instrukcję switch po wykonaniu pasującego przypadku. Bez niej PHP kontynuowałoby wykonywanie całego kodu poniżej, nawet z innych przypadków.

Zwróć uwagę, że sobota i niedziela współdzielą ten sam kod dzięki umieszczeniu przypadków jeden pod drugim. Przypadek default działa jak else. Wykonuje się, gdy żaden inny przypadek nie pasuje.

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

Używaj switch, gdy porównujesz jedną zmienną z wieloma dokładnymi wartościami. W przypadku złożonych warunków lub zakresów trzymaj się instrukcji if-elseif.

challenge icon

Wyzwanie

Łatwy

Odczytaj z wejścia ciąg znaków command reprezentujący kolor sygnalizacji świetlnej.

Użyj instrukcji switch, aby określić odpowiednie działanie na podstawie koloru:

  • Jeśli polecenie to red, wypisz Stop
  • Jeśli polecenie to yellow, wypisz Slow down
  • Jeśli polecenie to green, wypisz Go
  • Jeśli polecenie to flashing red lub flashing yellow, wypisz Proceed with caution
  • Dla każdej innej wartości wypisz Invalid signal

Przykład:

Jeśli wejściem jest green, wynikiem powinno być:

Go

Jeśli wejściem jest flashing red, wynikiem powinno być:

Proceed with caution

Jeśli wejściem jest blue, wynikiem powinno być:

Invalid signal

Spróbuj swoich sił

<?php
// Odczytaj dane wejściowe
$command = trim(fgets(STDIN));

// TODO: Napisz poniżej swój kod, używając instrukcji switch
// Określ odpowiednie działanie na podstawie koloru sygnalizacji świetlnej


?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator PHP online