Выражение switch — это оператор управления, выбирающий раздел переключения для выполнения из списка кандидатов.
Каждый раздел switch содержит одну или несколько меток case и список из одного или нескольких операторов. В следующем примере показан простой оператор switch с тремя разделами параметров. Каждый раздел switch содержит одну метку case, такую как case 1, и список из двух операторов.
В каждой метке case указывается постоянное значение. Управление передается разделу оператора switch, метка case которого содержит постоянное значение, соответствующее значению выражения switch, caseSwitch. Если метка case не содержит соответствующего значения, элемент управления передается в раздел default, если таковой имеется. Если раздела default нет, действия не предпринимаются и элемент управления передается за пределы оператора switch. В предыдущем примере выполняются инструкции первого раздела switch, потому что метка case case 1 определяет значение 1 и значение caseSwitch — также 1.
Оператор switch может включать любое количество разделов switch, причем каждый раздел может содержать одну или несколько меток case. Однако две метки case не могут содержать одно и то же постоянное значение.
Выполнение списка операторов в выбранном разделе начинается с первого оператора и продолжается по списку, обычно до достижения оператора перехода, такого какbreak, goto case, return или throw. В этой точке управление передается за пределы оператора switch или к другой метке case.
В отличие от C++ C# не позволяет продолжить выполнение с одной секции переключения на другую.
Пример:
switch (switchExpression)
{
// A switch section can have more than one case label.
case 0:
case 1:
Console.WriteLine("Case 0 or 1");
// Most switch sections contain a jump statement, such as
// a break, goto, or return. The end of the statement list
// must be unreachable.
break;
case 2:
Console.WriteLine("Case 2");
break;
// The following line causes a warning.
Console.WriteLine("Unreachable code");
// 7 - 4 in the following line evaluates to 3.
case 7 - 4:
Console.WriteLine("Case 3");
break;
// If the value of switchExpression is not 0, 1, 2, or 3, the
// default case is executed.
default:
Console.WriteLine("Default case (optional)");
// You cannot "fall through" any switch section, including
// the last one.
break;
}
0.00 (0%) 0 votes








