В данном уроке мы продолжим тему условий, и рассмотрим оператор case, который позволяет быстрее писать и исполнять код. Он применяется, когда вам нужно проверить некоторый диапазон значений, например:
Код
int month;
if(month == 1) cout << "Январь";
if(month == 2) cout << "Февраль";
if(month == 3) cout << "Март";
if(month == 4) cout << "Апрель";
if(month == 5) cout << "Май";
if(month == 6) cout << "Июнь";
if(month == 7) cout << "Июль";
if(month == 8) cout << "Август";
if(month == 9) cout << "Сентябрь";
if(month == 10) cout << "Октябрь";
if(month == 11) cout << "Ноябрь";
if(month == 12) cout << "Декабрь";
Тогда проще воспользоваться оператором switch - case:
Код
switch (month)
{
case 1:
cout<<"Январь"
break;
case 2:
cout<<"Февраль"
break;
case 3:
cout<<"Март"
break;
case 4:
cout<<"Апрель"
break;
case 5:
cout<<"Май"
break;
case 6:
cout<<"Июнь"
break;
case 7:
cout<<"Июль"
break;
case 8:
cout<<"Август"
break;
case 9:
cout<<"Сентябрь"
break;
case 10:
cout<<"Октябрь"
break;
case 11:
cout<<"Ноябрь"
break;
case 12:
cout<<"Декабрь"
break;
default:
cout<<"Месяца с таким номером не существует";
break;
}
Как вы могли видеть из примера выше, оператор case умеет проверять объекты только на равенство (==). Кроме того, если значение не попало в контролируемый вами диапазон, то в этом случае тоже можно произвести какие - нибудь действия, например вывести сообщение об ошибке.
Таким образом оператор switch - case имеет следующую сигнатуру:
Код
switch (переменная)
{
case значение1:
операторы1;
case значение2:
операторы2;
default:
операторы 3;
}
Где переменная, это имя переменной значения которой мы хотим проверить, значение - это значение, на которое мы хотим проверить, а операторы это последовательность операторов, которую необходимо выполнить в этом случае.
Оператор break используется для того, чтобы после того, как условие выполнилось, не выполнились остальные операторы, например:
Код
int a = 1;
switch (a)
{
case 0:
cout << 0;//не выполнится
case 1:
cout << 1;//выполнится
case 2:
cout << 2;//выполнится, потому что до него уже выполнилось условие
case 3:
cout << 3;//выполнится, потому что до него уже выполнилось условие
}
Выведет: 123
Если вас не устраивает такое поведения, то просто добавьте break; в конец каждого case.