Для чего применяется слово default в выражении switch
Обновлено: 21.11.2024
Следующие операторы выбирают операторы, которые нужно выполнить, из нескольких возможных вариантов на основе значения выражения:
-
выбирает оператор, который нужно выполнить, на основе значения логического выражения. выбирает список операторов, который нужно выполнить, на основе соответствия шаблона выражению.
Инструкция if
Оператор if может быть в любой из следующих двух форм:
Оператор if с частью else выбирает для выполнения один из двух операторов на основе значения логического выражения, как показано в следующем примере:
Оператор if без части else выполняется, только если логическое выражение имеет значение true , как показано в следующем примере:
Операторы if можно вкладывать для проверки нескольких условий, как показано в следующем примере:
В контексте выражения можно использовать условный оператор ?: для вычисления одного из двух выражений на основе значения логического выражения.
Инструкция switch
Оператор switch выбирает список операторов, который нужно выполнить, на основе соответствия шаблона выражению соответствия, как показано в следующем примере:
В предыдущем примере оператор switch использует следующие шаблоны:
-
— для сравнения результата выражения с константой. — для проверки того, равен ли результат выражения константе.
Сведения о шаблонах, поддерживаемых оператором switch , см. в статье Шаблоны.
В предыдущем примере также показана ветвь default . Ветвь default указывает операторы, которые нужно выполнить, если выражение не соответствует ни одному другому шаблону. Если выражение не соответствует ни одному шаблону, а ветви default нет, управление передается оператору switch .
Оператор switch выполняет список операторов в первом разделе switch, шаблон ветви которого соответствует выражению соответствия, а условие ветви, если оно есть, равно true . Оператор switch оценивает шаблоны ветвей в порядке, в котором они указаны в коде, сверху вниз. Компилятор создает ошибку, если оператор switch содержит недостижимую ветвь. Это ветвь, которая уже была обработана в верхнем регистре или шаблон которой невозможно сопоставить.
Ветвь default может находиться в любом месте в операторе switch . Независимо от ее расположения ветвь default всегда вычисляется последней и только в том случае, если не будет совпадений ни с одним из других шаблонов ветвей.
Можно указать несколько шаблонов ветвей для одного раздела оператора switch , как показано в следующем примере:
Внутри оператора switch управление не может передаваться от одного раздела switch к следующему. Как показано в примерах этого раздела, обычно в конце каждого раздела switch используется оператор break для передачи управления из оператора switch . Вы также можете использовать операторы return и throw, чтобы передать управление из оператора switch . Чтобы имитировать такое поведение ветви и передать управление другому разделу switch, можно использовать оператор goto .
В контексте оператора можно использовать оператор switch , чтобы вычислить одно выражение из списка кандидатов на основе сопоставления шаблона с выражением.
Охранные условия
Шаблон ветви может недостаточно полно выражать условие выполнения раздела switch. В этом случае можно использовать условие ветви. Это дополнительное условие, которое должно выполняться помимо соответствия шаблону. Условие случая должно быть логическим выражением. Охранное условие указывается после ключевого слова when , идущего за шаблоном, как показано в следующем примере.
В предыдущем примере используются шаблоны положений со вложенными шаблонами отношений.
Поддержка версий языка
- Выражение соответствия должно иметь один из следующих типов: char, string, bool, целочисленный числовой тип или тип перечисления.
- В метках case допускаются только константные выражения.
Читайте также: