Menu
Coddy logo textTech

Оператор switch

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

Инструкция switch похожа на многоуровневую инструкцию if. Вместо проверки одного условия она сравнивает значение variable с несколькими case и выполняет код, связанный с подходящим case.

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

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

Вот пример:

int day = 3;
std::string dayName;

switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    // ... cases для других дней
    default:
        dayName = "Invalid day";
}

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

int day = 3;
std::string dayName;

switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    // ... cases для других дней
    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: для других вариантов

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

#include <iostream>

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

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

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

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