Menu
CoddyTech

Оператор 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";
}
challenge icon

Задание

Новичок

Создай программу, которая принимает номер месяца (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;
}
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор C++