Материалы
Оператор выбора switch позволяет выбирать между несколькими разделами кода в зависимости от значения целочисленного выражения.
Синтаксис оператора:
switch ( целочисленное_выражение )
case значение1 : оператор1
case значение2 : оператор2
...
default : инструкция |
Нужно иметь в виду следующее:
- Выражение должно быть обязательно целого типа.
- Тело оператора switch состоит из ряда меток case и необязательной метки default.
- Никакие два константных выражения в операторах case не могут иметь одно и то же значение.
- Метка default может появляться только один раз.
- Оператор по умолчанию (default) не всегда стоит в конце; он может отображаться в любой части оператора switch.
- Метка case или default может отображаться только внутри оператора switch.
- Значение в каждой метке case сравнивается с исходным выражением на равенство.
- Управление передается оператору, у которого значение у метки case соответствует значению выражения.
- Для выхода из тела операторы switch используется оператор break, который следует размещать в конце каждого набора инструкций.
- Можно ставить две метки на один оператор.
- Не забываем, что символьный тип char также может быть приведен к целому типу, то есть проверять на равенство можно не только числовые выражения, но и символы.
Пример 1
Задание: вывести название дня недели по его номеру.
Пример входных данных
|
Результат работы программ
|
5
|
Пятница
|
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int n = 0;
cin >> n;
switch (n)
{
case 1: cout << "Понедельник\n"; break;
case 2: cout << "Вторник\n"; break;
case 3: cout << "Среда\n"; break;
case 4: cout << "Четверг\n"; break;
case 5: cout << "Пятница\n"; break;
case 6: cout << "Суббота\n"; break;
case 7: cout <<"Воскресенье\n"; break;
default: cout <<"Номер должен быть от 1 до 7.\n"; break;
}
return 0;
}
|
Пример 2
Задание: вводят два числа и знак арифметической операции между ними. Каждое число и знак операции вводят через пробел. Произвести требуемое вычисление и вывести ответ.
Пример входных данных
|
Результат работы программ
|
12 + 45
|
12+45=57
|
#include <iostream>
using namespace std;
int main() {
double a,b;
char oper; // переменная символьного типа, которая будет хранить знак операции
cin >> a >> oper >> b;
switch (oper) //сопоставляем знак операции с
{
case '+': { cout << a << oper << b << "=" << a+b; }
break;
case '-': { cout << a << oper << b << "=" << a-b; }
break;
case '*': { cout << a << oper << b << "=" << a*b; }
break;
case '/': { cout << a << oper << b << "=" << a/b; }
break;
default: { cout << "Error! Incorrect input!\n";}
break;
}
}
|
Пример 3
Задание: для введенного номера месяца, вывести сколько в нем дней.
Пример входных данных
|
Результат работы программ
|
4
примечание: в апреле (месяц №4) 30 дней
|
30 дней
|
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int month;
cin >> month;
switch (month)
{
case 1: //перечисляем сразу все значения, соответствующие реакции "31 день"
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout << "31 день.\n";
break;
case 4:
case 6:
case 9:
case 11:
cout << "30 дней.\n";
break;
case 2:
cout << "28 или 29 дней.\n";
break;
default:
cout << "Такого месяца нет.\n";
break;
}
return 0;
}
|
Практическое задание
- Вывести название месяца по его номеру, введенному с клавиатуры.
- По введенному номеру месяца, вывести название времени года.
Комментариев нет:
Отправить комментарий