Ветка default
Метка default в операторе
switch задаёт
запасной блок, когда ни одна ветка
case не совпала
с управляющим выражением. В инструкции default
может быть только одна. В выражении switch
ту же роль играет шаблон _.
Синтаксис
switch (выражение)
{
case значение:
break;
default:
// код, если нет совпадений
break;
}
Пример
Давайте выведем default для неизвестного
числа:
using System;
class Program
{
static void Main()
{
int num = 5;
switch (num)
{
case 1:
Console.WriteLine("one");
break;
case 2:
Console.WriteLine("two");
break;
default:
Console.WriteLine("other");
break;
}
}
}
Результат выполнения кода:
"other"
Пример
Давайте пропустим default, когда есть
подходящий case:
using System;
class Program
{
static void Main()
{
int num = 2;
switch (num)
{
case 1:
Console.WriteLine("one");
break;
case 2:
Console.WriteLine("two");
break;
default:
Console.WriteLine("other");
break;
}
}
}
Результат выполнения кода:
"two"
Пример
Давайте обработаем строку, не равную "abcde":
using System;
class Program
{
static void Main()
{
string str = "12345";
switch (str)
{
case "abcde":
Console.WriteLine("match");
break;
default:
Console.WriteLine("no match");
break;
}
}
}
Результат выполнения кода:
"no match"
Пример
Давайте используем default вместе с
охраной when,
когда все case отсеялись:
using System;
class Program
{
static void Main()
{
int num = 1;
switch (num)
{
case 1 when num < 0:
Console.WriteLine("never");
break;
default:
Console.WriteLine("fallback");
break;
}
}
}
Результат выполнения кода:
"fallback"