Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Оператор выбора switch
Оператор выбора switch
имеет следующий формат:
switch (<Выражение>) {
case <Константа 1>:
<Инструкции>
break;
[...
case <Константа N>:
<Инструкции>
break;]
[ default:
<Инструкции>]
}
Вместо условия оператор switch
принимает выражение. В зависимости от значения выражения выполняется один из блоков case
, в котором указано это значение. Значением выражения должно быть целое число или символ. Если ни одно из значений не описано в блоках case
, то выполняется блок default
(если он указан). Обратите внимание на то, что значения в блоках case
не могут иметь одинаковые константы. Пример использования оператора switch
приведен в листинге 4.5.
Листинг 4.5. Использование оператора switch
#include <iostream>
#include <clocale>
int main() {
std::setlocale(LC_ALL, "Russian_Russia.1251");
int os = 0;
std::cout << "Какой операционной системой вы пользуетесь?\n\
1 - Windows XP\n\
2 - Windows 8\n\
3 - Windows 10\n\
4 - Другая\n\n\
Введите число, соответствующее ответу: ";
std::cout.flush();
std::cin >> os;
if (!std::cin.good()) {
std::cout << "Вы ввели не число" << std::endl;
return 1;
}
switch (os) {
case 1:
std::cout << "Вы выбрали - Windows XP";
break;
case 2:
std::cout << "Вы выбрали - Windows 8";
break;
case 3:
std::cout << "Вы выбрали - Windows 10";
break;
case 4:
std::cout << "Вы выбрали – Другая";
break;
default:
std::cout << "Мы не смогли определить систему";
}
std::cout << std::endl;
return 0;
}
Как видно из примера, в конце каждого блока case
указан оператор break
. Этот оператор позволяет досрочно выйти из оператора выбора switch
. Если не указать оператор break
, то будет выполняться следующий блок case
вне зависимости от указанного значения. В некоторых случаях это может быть полезным. Например, можно выполнить одни и те же инструкции при разных значениях, разместив инструкции в конце диапазона значений. Пример:
char ch = 'b';
switch (ch) {
case 'a':
case 'b':
case 'c':
std::cout << "a, b или c" << std::endl;
break;
case 'd':
std::cout << "Только d" << std::endl;
}
В операторе case
можно указать одно из значений перечисления. Пример проверки выбранного значения перечисления приведен в листинге 4.6.
Листинг 4.6. Использование оператора switch
с перечислениями
#include <iostream>
enum Color { RED, BLUE, GREEN, BLACK };
int main() {
Color color = GREEN;
switch (color) {
case RED:
std::cout << "RED" << std::endl;
break;
case BLUE:
std::cout << "BLUE" << std::endl;
break;
case GREEN:
std::cout << "GREEN" << std::endl;
break;
case BLACK:
std::cout << "BLACK" << std::endl;
}
return 0;
}
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов