Оператор switch
Оператор switch в Dart позволяет выбрать один
из множества вариантов выполнения кода на основе
значения выражения. В качестве параметра оператор
принимает выражение, значение которого сравнивается
с вариантами в блоках case. Если значение
совпадает с одним из вариантов, выполняется
соответствующий блок кода. Блок default
выполняется, если ни один из вариантов не подошёл.
В отличие от многих других языков, в Dart оператор
switch не требует явного break после
каждого блока case - каждый блок автоматически
завершается и переход к следующему блоку не происходит.
Синтаксис
switch (expression)
{
case value1:
// code
case value2:
// code
default:
// code
}
Пример
Давайте сравним значение переменной с несколькими вариантами и выведем соответствующий текст:
void main()
{
int num = 2;
switch (num)
{
case 1:
print('one');
case 2:
print('two');
case 3:
print('three');
default:
print('unknown');
}
}
Результат выполнения кода:
"two"
Пример
Если ни один из вариантов не совпал, выполнится
блок default:
void main()
{
int num = 5;
switch (num)
{
case 1:
print('one');
case 2:
print('two');
default:
print('unknown');
}
}
Результат выполнения кода:
"unknown"
Пример
В Dart оператор switch можно использовать
со строками. Давайте сравним значение строковой
переменной:
void main()
{
String str = 'abcde';
switch (str)
{
case 'abcde':
print('match');
case '12345':
print('number');
default:
print('unknown');
}
}
Результат выполнения кода:
"match"
Пример
Несколько значений case можно объединить,
если для них должен выполниться один и тот же код:
void main()
{
int num = 3;
switch (num)
{
case 1:
case 2:
print('small');
case 3:
case 4:
print('medium');
default:
print('large');
}
}
Результат выполнения кода:
"medium"