Статьи

Учебные материалы по языку C++ — от основ до продвинутых тем

Конструкция switch и выбор из вариантов

Страница 10 из 43 · 2026-10-25 · 1 мин чтения

Когда нужен switch

switch удобен, когда одно выражение сравнивается с набором постоянных значений.

int command = 2;switch (command) {    case 1:        std::cout << "Новая игра\n";        break;    case 2:        std::cout << "Загрузить игру\n";        break;    case 3:        std::cout << "Выход\n";        break;    default:        std::cout << "Неизвестная команда\n";        break;}

case задаёт вариант, break завершает выполнение switch, а default обрабатывает все остальные значения.

Почему важен break

Без break выполнение продолжится в следующем case. Такое поведение называется проваливанием (fallthrough). Иногда оно намеренно используется для объединения вариантов:

switch (key) {    case 'w':    case 'W':        MoveForward();        break;    default:        break;}

Перечисления

Для набора именованных состояний хорошо подходит enum class:

enum class GameState {    Menu,    Playing,    Paused,    GameOver};GameState state = GameState::Playing;switch (state) {    case GameState::Menu: ShowMenu(); break;    case GameState::Playing: UpdateGame(); break;    case GameState::Paused: ShowPause(); break;    case GameState::GameOver: ShowResult(); break;}

enum class не преобразуется автоматически в целое число и не загрязняет окружающую область имён значениями перечисления.

Ограничения

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

Итог

Используй switch, когда выбираешь действие по одному дискретному значению. Не забывай о break и обрабатывай неожиданные значения через default, если это уместно.