Достаточно часто возникают ситуации, когда нам надо заложить вэксперте недва, абольше варианта развития событий. Например, переменная iможет принимать целочисленные значения от1до5 ивзависимости оттого, какое значение имеет эта переменная, возможны 5различных последовательностей операторов. Такую задачу легко можно решить сиспользованием множества вложенных условных операторов if-else.
if (i == 1)
оператор1;
else
if (i == 2)
оператор2;
else
if (i == 3)
оператор3;
else
if (i == 4)
оператор4;
else
if (i == 5)
оператор5;
Такой код будет работать, ноего очень тяжело читать ивоспринимать. Для большей наглядности втаких случаях лучше использовать оператор переключения switch.
Формат оператора switch:
switch(выражение)
{
case константа1: операторы1
case константа2: операторы2
...
default: операторы_default
}
Принцип работы этого оператора: сначала вычисляется значение выражения, потом среди констант константа1, константа2 идр.ищется константа, которая равна результату выражения. Если такая константа найдена, тооправление передается насоответствующую группу операторов. После этого последовательно выполняются все операторы этой группы ивсех последующих, пока небудет выполнен последний оператор воператоре switсh или небудет осуществлен досрочный выход изоператора switсh спомощью оператора break. Еслиже небыло найдено подходящей константы, тоуправление передается нагруппу операторов операторы_default.
Метка default игруппа операторов операторы_default могут отсутствовать. Вэтом случае просто небудет выполняться никаких действий, если ниодна изконстант несоответствует результату выражения. Default необязательно должен быть последним.
Каждый вариант case может быть помечен целой константой, символьной константой или константным выражением.
Теперь вкачестве примере перепишем наш пример спеременной iи5вариантами действий спомощью оператора switch:
switch (i)
{
case 1: оператор1; break;
case 2: оператор2; break;
case 3: оператор3; break;
case 4: оператор4; break;
case 5: оператор5; break;
}
Перейти к главе «
Учим эксперта торговать».