Конструкция switch-case в C++
Давайте теперь разберем конструкцию switch.
В C++ есть специальная конструкция switch-case,
которая используется для выбора одного значения
из некоторого ряда значений. В скобках должно
стоять целое число или символ char,
строка здесь не подходит. Изучите ее синтаксис:
switch (переменная) {
case значение1:
/*
здесь код, который выполнится в случае,
если переменная имеет значение1
*/
break;
case значение2:
/*
здесь код, который выполнится в случае,
если переменная имеет значение2
*/
break;
case значение3:
/*
здесь код, который выполнится в случае,
если переменная имеет значение3
*/
break;
default:
/*
здесь код, который выполнится в случае,
если не совпала ни с одним значением
*/
break;
}
Как вы можете заметить, switch-case
представляет собой альтернативу множеству
else if. Давайте посмотрим на примере.
Пусть у нас есть вот такой код:
int num = 1;
if (num == 1) {
std::cout << "variant 1" << "\n";
} else if (num == 2) {
std::cout << "variant 2" << "\n";
} else if (num == 3) {
std::cout << "variant 3" << "\n";
} else {
std::cout << "variant not supported" << "\n";
}
Перепишем этот код через конструкцию switch-case:
int num = 1;
switch (num) {
case 1:
std::cout << "variant 1" << "\n";
break;
case 2:
std::cout << "variant 2" << "\n";
break;
case 3:
std::cout << "variant 3" << "\n";
break;
default:
std::cout << "variant not supported" << "\n";
break;
}
Переменная num может принимать значения
1, 2, 3 или 4.
Определите, в какую пору года попадает значение
этой переменной.
Перепишите код, используя switch по целому числу:
int num = 1;
if (num == 1) {
std::cout << "rus" << "\n";
} else if (num == 2) {
std::cout << "eng" << "\n";
} else if (num == 3) {
std::cout << "deu" << "\n";
} else {
std::cout << "language not supported" << "\n";
}
Дано число:
int num = 443;
Для 80 выведите "http", для 443 -
"https", для 21 - "ftp",
иначе "custom port".