Menu
Coddy logo textTech

Оператор switch

Часть раздела Основы путешествия по C++ на Coddy — урок 29 из 74.

Оператор switch подобен многостороннему оператору if. Вместо вычисления одного условия он проверяет значение переменной на соответствие нескольким вариантам и выполняет код, связанный с подходящим случаем.

Вот базовая структура оператора switch:

switch (variable) {
    case value1:
        // Код, который выполнится, если variable равно value1
        break;
    case value2:
        // Код, который выполнится, если variable равно value2
        break;
    // ... больше вариантов
    default:
        // Код, который выполнится, если ни один вариант не подошел
}
  • За ключевым словом switch следует переменная, которую вы хотите проверить, в круглых скобках.
  • Каждый case представляет собой возможное значение переменной.
  • Код внутри каждого case выполняется, если значение переменной совпадает со значением этого случая.
  • Оператор break крайне важен; он завершает выполнение switch после того, как блок case будет выполнен. Без него выполнение «провалится» в следующий case.
  • Блок default является необязательным и выполняется, если ни один другой case не подошел.

Вот пример:

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";
}
challenge icon

Задание

Новичок

Создайте программу, которая принимает номер месяца (1 для января, 2 для февраля и т. д.) и выводит время года, к которому он относится. Используйте оператор switch для реализации логики.

Времена года и соответствующие им месяцы:

  • Winter: Декабрь (12), Январь (1), Февраль (2)
  • Spring: Март (3), Апрель (4), Май (5)
  • Summer: Июнь (6), Июль (7), Август (8)
  • Autumn: Сентябрь (9), Октябрь (10), Ноябрь (11)
  • Invalid month: для других вариантов

Шпаргалка

Оператор switch — это многовариантное условие, которое проверяет значение переменной на соответствие нескольким вариантам (кейсам):

switch (variable) {
    case value1:
        // Код, который выполнится, если variable равно value1
        break;
    case value2:
        // Код, который выполнится, если variable равно value2
        break;
    default:
        // Код, который выполнится, если ни один вариант не подошел
}

Основные компоненты:

  • case: представляет собой возможное значение переменной
  • break: завершает выполнение switch после того, как код в кейсе был исполнен (предотвращает «проваливание» в следующие кейсы)
  • default: необязательный блок, который выполняется, если ни один другой кейс не подошел

Вы можете объединять несколько кейсов:

switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    default:
        dayName = "Invalid day";
}

Попробуйте сами

#include <iostream>

int main() {
    int month;
    std::cin >> month;
    std::string season = "";
    
    // Напишите свой код ниже
    
    
    std::cout << season << std::endl;
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы