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.
Wyzwanie
ŁatwyOdczytaj 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, wypiszStop - Jeśli polecenie to
yellow, wypiszSlow down - Jeśli polecenie to
green, wypiszGo - Jeśli polecenie to
flashing redlubflashing yellow, wypiszProceed with caution - Dla każdej innej wartości wypisz
Invalid signal
Przykład:
Jeśli wejściem jest green, wynikiem powinno być:
GoJeśli wejściem jest flashing red, wynikiem powinno być:
Proceed with cautionJeśli wejściem jest blue, wynikiem powinno być:
Invalid signalSpró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
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online