Глава 10. Написание выражений 229
Оператор break передает управление оператору, следующему за закрывающей скобкой оператора switch.
Однако иногда такое сквозное действие может оказаться полезным. В предыдущем примере от пользователя требуется ввести 'а', 'ь' или 'с' в нижнем регистре. Если регистр символа нам не важен, то надо разрешить ввод в любом регистре:
switch (menuCommand) { case 'A' case 'а'
fool( ;
break case 'В' case 'b'
foo2( ;
break case 'C' case 'c' »
foo3( ;
break default:
cout « "Ошибка ввода.\n;
}
Функция fool () вызывается, когда menuCommand принимает значения ' а' или 'А'. Метка default аналогична оператору else и так же, как и else, необязательна.
Если внутри последовательности операторов после метки case происходит инициализация, то у вас могут быть проблемы. Листинг 10.3 показывает пример программы, которую невозможно скомпилировать.
/ ERROR: Это компилироваться не будет! #include <iostream.h>
int main() (
char menuCommand;
cout « "Площадь (К)руга или (П)рямоугольника.\п" cin » menuCommand;
switch (menuCommand) { case 'K':
case 'к':
cout « "Введите радиус круга: \п";
float radius;
cin » radius;
const float pi = 3.1415926535;