Ключевое слово case
Ключевое слово case используется внутри конструкции
switch для определения отдельной ветки выполнения.
Ветка срабатывает тогда, когда значение, переданное в
switch, совпадает с константой или шаблоном,
указанным после case. После case указывается
значение или шаблон, затем ставится двоеточие, а далее
идёт блок кода, который выполняется при совпадении.
Каждая ветка case должна завершаться оператором
break, иначе выполнение перейдёт к следующей ветке.
Также case может использоваться в конструкции
if-case для сопоставления с образцом прямо
в условии.
Синтаксис
switch (value)
{
case pattern:
// code
break;
default:
// code
}
Пример
Давайте проверим значение переменной и выведем соответствующее сообщение:
void main()
{
int num = 2;
switch (num)
{
case 1:
print('one');
break;
case 2:
print('two');
break;
case 3:
print('three');
break;
default:
print('unknown');
}
}
Результат выполнения кода:
"two"
Пример
Давайте используем несколько значений в одной ветке
case через логический оператор ||:
void main()
{
String str = 'b';
switch (str)
{
case 'a' || 'b':
print('first group');
break;
case 'c' || 'd':
print('second group');
break;
default:
print('other');
}
}
Результат выполнения кода:
"first group"
Пример
Давайте используем case с шаблоном списка
для сопоставления структуры данных:
void main()
{
var list = [1, 2, 3];
switch (list)
{
case [1, 2, 3]:
print('exact match');
break;
case [1, ...]:
print('starts with 1');
break;
default:
print('no match');
}
}
Результат выполнения кода:
"exact match"
Пример
Давайте используем case внутри конструкции
if-case для проверки соответствия шаблону:
void main()
{
var pair = (1, 2);
if (pair case (int a, int b))
{
print(a + b);
}
}
Результат выполнения кода:
3