Конструкция выбора switch
Конструкция switch позволяет выполнить разные действия при разных значениях выражения. После ключевого слова switch следует исходное выражение, которое вычисляется и запоминается как switch-значение. Затем в фигурных скобках перечисляются конструкции case с всевозможными значениями и исходным кодом, который необходимо выполнить. У одного case может быть определено через запятую несколько возможных значений при которых он будет выполнен. После выполнения case блока с подходящим значением программа переходит к следующему за switch оператору. Остальные case блоки не проверяются.
switch a + b
{
case 0, 1, 2
{ ... }
case 3
{ ... }
case 4,10,12
{ ... }
}
Если вы хотите выполнить какие-то действия в случае, если не один case блок не был выполнен, то вставьте в конец switch конструкцию default. Может быть только одна конструкция default и она должна стоять последней после всех case.
switch ipar
{
case 2,4,8,16,32
{ ... }
case k, k + l
{ ... }
default
{
...
}
}
Дополнительные возможности
Конструкцию switch можно использовать не только для числовых выражений, но и для любых типов поддерживающих операцию сравнения ==.
Наравне с case можно использовать метку label для безусловного перехода внутри switch. Метка установленная ниже ключевого слова case, позволяет зайти в соответствующий case-блок из другого блока case.
switch name
{
case "John", "Steve"
label a0
{
...
}
case "Laura", "Vanessa"
{
...
if name == "Laura" : goto a0
}
default
{
...
}
}