§ 4. Оператор ветвления
4.3. Оператор множественного выбора
Оператор if позволяет выбирать один из двух альтернативных вариантов. Если требуется выбор из трех и более вариантов, то использование нескольких операторов if может ухудшать читаемость кода программы. В С++ еще имеется оператор множественного выбора switch, который позволяет выбрать один вариант из нескольких в зависимости от значения выражения и обеспечивает множественное разветвление в программе. Часто использование оператора switch более эффективно, чем использование нескольких операторов if. Формат команды: switch ( <переменная> ) { case константа1: { команда(ы)1 break; } case константа2: { команда(ы)2 break; } ... default: { команда(ы)n break; } } Переменная поочередно сравнивается со значениями констант, описанными после ключевого слова case. После двоеточия находится код, который будет выполнен в случае, если переменная оказалась равной текущему значению. Команда break необходима для того, чтобы прервать выполнение switch и не проверять переменную на совпадение с оставшимися значениями. В блоке default прописываются команды, которые будут выполняться в том случае, когда ни одного совпадения переменной с перечисленными значениями не было обнаружено. Этот блок может быть опущен. Фигурные скобки могут быть опущены, если в блоке выполняется только одна команда. Пример 4.6. Дано значение n (1 ≤ n ≤ 7), являющееся номером дня недели. Написать программу, которая определит по значению n, выходной этот день или рабочий. Этапы выполнения задания I. Исходные данные: n (номер дня недели). II. Результат: сообщения — «рабочий», «выходной» или «ошибочный номер». III. Алгоритм решения задачи. 1. Ввод исходного числа. 2.1. Если значения n — 1, 2, 3, 4, 5 — выводится сообщение «рабочий». 3. Вывод результата. VI. Описание переменных: n – int. |
Нужно помнить о некоторых особенностях оператора switch:
С технической точки зрения операторы break являются необязательными в операторе switch. Они используются для окончания работы последовательности команд, относящихся к одному блоку, в котором произошло совпадение значения переменной со значением константы. Если оператор break отсутствует, то после того, как было обнаружено совпадение, будут выполнены все остальные команды для каждого выбора, описанного после совпадения. Сравнения не происходят, а команды выполняются последовательно. Пример 4.6. V. Программа:
VI. Тестирование: |