Оператор switch
Оператор switch позволяет выбрать один из множества
вариантов выполнения кода в зависимости от значения
выражения. В качестве параметра оператор принимает
выражение, значение которого сравнивается с константами
в блоках case. Когда совпадение найдено, выполняется
соответствующий блок кода. Блок default выполняется,
если ни одно из значений case не совпало.
Оператор break прерывает выполнение switch
и передаёт управление за его пределы. Если break
не указан, управление «проваливается» в следующий
блок case.
Синтаксис
switch (expression)
{
case value1:
// code
break;
case value2:
// code
break;
default:
// code
break;
}
Пример
Давайте выведем название дня недели по его номеру.
Если номер равен 1 - выведем "Monday",
если 2 - "Tuesday", иначе - "Unknown":
#include <iostream>
using namespace std;
int main()
{
int day = 2;
switch (day)
{
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
default:
cout << "Unknown" << endl;
break;
}
return 0;
}
Результат выполнения кода:
"Tuesday"
Пример
Если не указать break, управление провалится
в следующий блок. Давайте посмотрим, как это работает:
#include <iostream>
using namespace std;
int main()
{
int day = 1;
switch (day)
{
case 1:
cout << "Monday" << endl;
case 2:
cout << "Tuesday" << endl;
default:
cout << "Unknown" << endl;
}
return 0;
}
Результат выполнения кода:
"Monday"
"Tuesday"
"Unknown"
Пример
Несколько значений case можно объединить,
если для них выполняется один и тот же код:
#include <iostream>
using namespace std;
int main()
{
int day = 6;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
cout << "Workday" << endl;
break;
case 6:
case 7:
cout << "Weekend" << endl;
break;
default:
cout << "Unknown" << endl;
break;
}
return 0;
}
Результат выполнения кода:
"Weekend"