228______________________________Часть II. Программирование на C++
cout « " Введите строчную букву (от а до z). \п";
cin » с;
if (с <= 'z') { if (с < 'а')
cout « "Неверная буква (< а).\п";
} else {
cout « "Неверная буква (> z).\n";
} return 0;
} , .
switch
Оператор switch позволяет задавать несколько вариантов действий, практически так же, как и оператор if-else. На самом деле, используя if-else, можно написать эквивалент любого оператора switch, но иногда switch гораздо понятнее. Пример использования оператора switch:
switch (menuCommand) { case 'a':
fool();
breaks-case 'b' :
foo2() ;
breaks-case 'c' :
foo3 () ;
break;
default: // Необязателен
cout « "Ошибка ввода.\n";
}
Значение выражения в скобках после оператора switch в первой строке сравнивается со всеми значениями case. Операторы case — это метки. Каждая метка case должна быть целочисленной константой или приводимой к целочисленной константе. Константы типов char, long, short и enum могут быть преобразованы в целые константы. Дополнительное требование к меткам состоит в том, что значение каждой из них должно быть уникальным. Значение выражения в операторе switch поочередно сравнивается с каждым значением case. Когда метка, равная значению выражения, найдена, выполняются все операторы после нее и до ближайшего оператора break или до конца оператора switch. Если menuCommand из приведенного примера соответствует первому case, case ' a', то вызывается функция fool (). Если бы после fool () не было оператора break, то была бы также вызвана функция foo2 (), даже если menuCommand не было бы равно 'b'. Обычно это нежелательно.