Оператор switch-case в C++: синтаксис, применение и практические примеры
Что такое switch?
Оператор switch вычисляет значение переменной один раз и передаёт управление соответствующей метке case, упрощая многовариантное ветвление.
Можно рассматривать его как чистую, эффективную альтернативу длинной цепочке if…else if…, выбирающей блоки кода на основе значения переменной.
В этом уроке вы узнаете:
- Что такое оператор switch
- Когда его применять
- Роль ключевого слова
break - Синтаксис и структура
- Практические примеры
Когда использовать switch?
Switch идеален, когда одну переменную нужно сравнить с фиксированным набором констант. Он даёт более чистый и быстрый код, чем длинная цепочка if…else if….
Ключевое слово break
Внутри switch break прерывает выполнение текущего case, предотвращая «проваливание» (fall-through) в последующие case. Если break опущен, выполнение продолжается в следующий case.
При встрече break управление переходит к оператору, следующему за закрывающей фигурной скобкой switch.
Синтаксис
Типичная структура:
switch (переменная) {
case значение1:
// код
break;
case значение2:
// код
break;
default:
// код
}
- переменная — вычисляемое выражение.
- case — константа для сравнения.
- break — прекращает выполнение блока switch.
- default — опционально; выполняется, когда ни один case не совпал.
Пример 1
#include <iostream>
using namespace std;
int main() {
int x = 20;
switch (x) {
case 10: cout << "X is 10"; break;
case 20: cout << "X is 20"; break;
case 30: cout << "X is 30"; break;
default: cout << "X is not 10, 20 or 30"; break;
}
return 0;
}
Вывод:

Скриншот кода:

Разбор кода:
- Подключаем
<iostream>для консольного ввода/вывода. - Используем пространство имён
stdдля краткости. - Определяем
main()как точку входа. - Объявляем
int x = 20;. - Применяем
switch(x)для сравненияxс константами. - Case 10: печатает «X is 10».
- Case 20: печатает «X is 20».
- Case 30: печатает «X is 30».
- Default: обрабатывает значения, отличные от 10, 20, 30.
- Каждый case заканчивается
break;для предотвращения fall-through. - Возвращаем 0 — успешное завершение.
Пример 2
#include <iostream>
using namespace std;
int main() {
int choice;
cout << "Enter 1, 2 or 3: ";
cin >> choice;
switch (choice) {
case 1: cout << "Choice 1"; break;
case 2: cout << "Choice 2"; break;
case 3: cout << "Choice 3"; break;
default: cout << "Not 1, 2 or 3"; break;
}
}
Вывод:

Скриншот кода:

Разбор кода:
- Подключаем
<iostream>для ввода/вывода. - Используем
std. - Объявляем
int choice;. - Просим пользователя: «Enter 1, 2 or 3:».
- Читаем ввод в
choice. - Switch по
choiceветвится на соответствующий case. - Case 1 печатает «Choice 1».
- Case 2 печатает «Choice 2».
- Case 3 печатает «Choice 3».
- Default обрабатывает любой другой ввод.
- Каждый case заканчивается
break;.
Резюме
- Switch даёт компактную альтернативу вложенным
if…else if…. - Синтаксис чище, выполнение обычно быстрее.
- Применяйте, когда переменная должна сопоставляться с несколькими константами.
- Каждый
caseсравнивает переменную с отдельным значением. breakпредотвращает непреднамеренный fall-through.- Опциональный
defaultобрабатывает несовпавшие случаи.
Язык C
- Цепь с переключателем: практическое руководство по базовым электрическим цепям
- Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
- Оператор break в C#: как и когда использовать
- Операторы в C++: типы, примеры и практические программы
- Оператор switch-case в C++: синтаксис, применение и практические примеры
- Динамическое выделение массивов в C++: практическое руководство с примерами кода
- Структуры (struct) в C++: объяснение с практическим примером
- std::map в C++: полное руководство с примерами кода
- Освоение std::list в C++: синтаксис, функции и практические примеры
- C++ Struct vs Class: ключевые отличия, синтаксис и лучшие сценарии использования