Глава 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 показывает пример программы, которую невозможно скомпилировать.

h02291.jpg

/ 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;