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