метка_switch: case константное_выражение : default :
Вычисляется switch-выражение.
Если значение константы, указанной в метке case, совпадает со значением switch-выражения, управление передается списку операторов, следующему за меткой case.
Если ни одна из констант, указанных в метках case оператора switch, не совпадает со значением switch-выражения и при этом имеется метка default, управление передается списку операторов, следующему за меткой default, если метка default отсутствует, управление передается в конечную точку оператора switch.
Если после выполнения одного раздела (раздел заключен в {} скобки) switch должно следовать выполнение другого раздела switch, необходимо явным образом указывать оператор goto case или goto default.
Ошибка времени компиляции возникает, если несколько меток case в одном операторе switch задают одно и то же константное значение.
using System;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
int caseSwitch = 5;
switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
}
}
}
Список операторов раздела switch обычно заканчивается оператором break, goto case или goto default.
Если за меткой case нет списка операторов, то операторы break, goto case или goto default необязательны
В примереуправление передается списку операторов, следующему за меткой case 2
using System;
namespace ConsoleApplication5
{
class Program
{
static void Main()
{
int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
}
}
}
Оператор do выполняет внедренный оператор один или несколько раз в зависимости от соблюдения условия.
оператор_do: do внедренный_оператор while ( логическое_выражение ) ;
Управление передается внедренному оператору.
Если управление достигает конечной точки внедренного оператора, вычисляется логическое выражение.
Если результатом логического выражения является true, управление передается в начало оператора do. В противном случае управление передается в конечную точку оператора do.