Выполнение сравнения значения выражения селектора с постоянными значениями операторов case
с первого оператора и продолжается по списку, обычно до достижения оператора перехода. В этой точке управление передается за пределы оператора switch
или переходит к другому оператору case
, если операторы перехода или тело оператора case
отсутствовали, и так до того оператора case
, у которого будет присутствовать тело и оператор перехода. Такая техника называется проваливанием.
Пример использования техники проваливания при определении к какому виду дней (рабочий/выходной) принадлежит введённый пользователем день (день – число от 1 до 7: 1 – понедельник, 2 – вторник и т.д.):
static void Main()
{
Console.WriteLine("Введите номер дня недели: 1-2-3-4-5-6-7: ");
string day = Console.ReadLine();
switch (day)
{
// Для пустых операторов case разрешено "проваливание" от одного оператора к другому.
case "1":
case "2":
case "3":
case "4":
case "5":
Console.WriteLine("Этот день недели - Рабочий.");
break;
case "6":
case "7":
Console.WriteLine("Этот день недели - Выходной.");
break;
default:
Console.WriteLine("Вы ввели несуществующий день недели.");
break;
}
// Delay.
Console.ReadKey();
}
Результаты нескольких запусков:
Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №4. УСЛОВНЫЕ КОНСТРУКЦИИ"