Оператор switch
Часть раздела Основы путешествия по C++ на Coddy. Урок 29 из 74.
Инструкция switch похожа на многонаправленную инструкцию if. Вместо проверки одного условия она сравнивает значение переменной с несколькими вариантами и выполняет код, связанный с совпавшим вариантом.
Вот базовая структура оператора switch:
switch (variable) {
case value1:
// Код, выполняемый, если variable равна value1
break;
case value2:
// Код, выполняемый, если variable равна value2
break;
// ... другие варианты
default:
// Код, выполняемый, если ни один case не подошёл
}- За ключевым словом
switchв скобках указывается переменная, которую нужно проверить. - Каждый
caseсоответствует возможному значению переменной. - Код внутри каждого
caseвыполняется, если значение переменной совпадает со значением этого варианта.
- Инструкция
breakнеобходима: она завершает выполнениеswitchпосле выполнения case. Без неё выполнение «провалилось бы» в следующий case. - Ветка
defaultнеобязательна и выполняется, если не подходит ни одна другая ветка.
Вот пример:
int day = 3;
std::string dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... варианты для других дней
default:
dayName = "Invalid day";
}Также можно объединить несколько вариантов в один:
int day = 3;
std::string dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... варианты для других дней
default:
dayName = "Invalid day";
}Задание
НовичокСоздай программу, которая принимает номер месяца (1 для January, 2 для February и т. д.) и выводит сезон, к которому он относится. Для логики используй оператор switch.
Сезоны и соответствующие им месяцы:
- Winter: December (12), January (1), February (2)
- Spring: March (3), April (4), May (5)
- Summer: June (6), July (7), August (8)
- Autumn: September (9), October (10), November (11)
- Invalid month: для остальных вариантов
Попробуйте сами
#include <iostream>
int main() {
int month;
std::cin >> month;
std::string season = "";
// Напишите свой код ниже
std::cout << season << std::endl;
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - elseПотренируйтесь самостоятельно: Онлайн-компилятор C++