выражение – это любое выражение, допустимое в языке С++ и имеющее целочисленное значение. Значение данного выражения является ключевым для выбора из нескольких вариантов.
тело_оператора – набор помеченных операторов, заключенных в фигурные скобки. В теле оператора используются предложения с метками после ключевых слов case и/или default.
метка1, метка2,...меткаN – константное выражение (обычно целочисленное или символьное), вычисляемое во время трансляции, поэтому оно не может содержать переменные или вызовы функций. Все метки должны быть уникальны. Возможно использование нескольких меток перед списком операторов.
список_операторов – это оператор или составной оператор (который может быть пустым). Обратите внимание, что в операторе-переключателе не требуется заключать составной оператор в фигурные скобки.
default – оператор, на который передается управление, при отсутствии совпадения значения выражения с какой-то меткой. Данный оператор в конструкции употребляется только один раз.
Схема выполнения оператора switch следующая:
● вычисляется выражение в круглых скобках;
● вычисленные значения последовательно сравниваются с метками (константными выражениями), следующими за ключевыми словами case;
● если одна из меток совпадает со значением выражения, то управление передается на список операторов, помеченный соответствующим ключевым словом case;
● если ни одна из меток не равна выражению, то управление передается на список операторов, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после оператора выбора switch оператор.
Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора-переключателя switch путем передачи управления оператору, следующему за switch. В случае отсутствия оператора break сравнение по меткам будет продолжено.