Оператор switch
Часть раздела Основы путешествия по PHP на Coddy. Урок 32 из 71.
Когда вам нужно сравнить одну переменную с множеством определённых значений, switch statement предлагает более чистую альтернативу длинным цепочкам if-elseif.
Оператор switch проверяет переменную один раз, а затем сопоставляет её с различными значениями 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 сравнивает $day с каждым case. Найдя совпадение, он выполняет код этого блока.
Оператор break statement имеет решающее значение. Он сообщает PHP выйти из switch после выполнения совпавшего case. Без него PHP продолжил бы выполнение всего кода below, даже из других case.
Обрати внимание, как Saturday и Sunday используют один и тот же код благодаря последовательному размещению case. Случай default действует подобно else. Он выполняется, когда ни один другой случай не совпадает.
<?php
$grade = "B";
switch ($grade) {
case "A":
echo "Excellent!";
break;
case "B":
echo "Good job!";
break;
default:
echo "Keep trying!";
}
?>Используй switch при сравнении одной переменной с несколькими точными значениями. Для сложных условий или диапазонов придерживайся операторов if-elseif.
Задание
ЛегкоRead строку command из input, представляющую цвет traffic light.
Используйте switch statement, чтобы определить appropriate действие based на цвете:
- Если command имеет значение
red, выведитеStop - Если command имеет значение
yellow, выведитеSlow down - Если command имеет значение
green, выведитеGo - Если command имеет значение
flashing redилиflashing yellow, выведитеProceed with caution - Для любого другого значения выведите
Invalid signal
Пример:
Если в input передано значение green, результатом должен быть:
GoЕсли в input передано значение flashing red, результатом должен быть:
Proceed with cautionЕсли в input передано значение blue, результатом должен быть:
Invalid signalПопробуйте сами
<?php
// Прочитать ввод
$command = trim(fgets(STDIN));
// TODO: Напишите ваш код ниже, используя оператор switch
// Определите соответствующее действие на основе цвета светофора
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP