Оператор множественного выбора switch
В некоторых ситуациях применение оператора if может привести к возникновению очень сложных конструкций с большим количеством вложенных операторов. Язык C++ располагает альтернативным решением этой проблемы — оператором switch. В отличие от оператора if, он позволяет проверять сразу несколько условий, организуя ветвление программы более эффективно. Оператор switch имеет следующий синтаксис: switch (выражение) { case значение1: оператор; break; case значение2: оператор; break; ... case значениеN: оператор; break; }
Выражение в скобках оператора switch представляет собой любое допустимое выражение языка C++, а оператор — это любой допустимый оператор или блок операторов. Выражение возвращает (или может быть однозначно преобразовано в) целочисленное значение. Поэтому использование логических операций или выражений сравнения здесь недопустимо. Переход осуществляется к той строке оператора switch, где после ключевого слова case находится значение, соответствующее результату выражения. С этой строки выполнение операторов продолжится до тех пор, пока оператор switch не завершится либо пока не встретится оператор break. Если ни одно значение case не соответствует результату выражения, выполняются операторы, следующие за ключевым словом default, а в случае его отсутствия оператор switch завершается. Блок-схема выполнения оператора if..else приведена на рис. 3.3.
Рис. 3.3. Исполнение оператора if..else
Пример использования оператора switch приведен в листинге 3.3.
|