В этом руководстве вы познакомитесь с оператором TypeScript switch...case.
Введение
Ниже показан синтаксис switch...case :
switch( expression ) {
case value1:
// statement 1
break;
case value2:
// statement 2
break;
case valueN:
// statement N
break;
default:
//
break;
}Как это устроено:
Во-первых, switch...case оценивает expression.
Затем он ищет первое предложение case, выражение которого дает то же значение, что и значение (value1, value2, … valueN ).
Оператор switch...case выполнит оператор в первом предложении case, значение которого совпадает.
Если соответствующее предложение case не найдено, switch...case ищет необязательное предложение default. Если предложение default доступно, выполняется инструкция в предложении default.
Оператор break, связанный с каждым предложением case, гарантирует, что элемент управления выйдет из switch...case после выполнения операторов в предложении case.
Если в соответствующем предложении case нет break, выполнение программы продолжается со следующего оператора в операторе switch...case.
default является последним предложением в switch...case. Однако так быть не должно.
Примеры оператора switch case
Давайте рассмотрим несколько примеров использования оператора switch…case в TypeScript.
1) Простой пример
В следующем примере показан простой пример switch...case, который показывает сообщение на основе целевого идентификатора:
let targetId = 'btnDelete';
switch(targetId) {
case 'btnUpdate':
console.log('Update');
break;
case 'btnDelete':
console.log('Delete');
break;
case 'btnNew':
console.log('New');
break;
}Выход:
Delete
В этом примере для targetId установлено значение btnDelete.
Оператор switch...case сравнивает targetId со списком значений. Поскольку targetId соответствует 'btnDelete', выполняется оператор в соответствующем предложении case.
2) Пример группового случая
Если у вас есть код, который используется несколькими делами, вы можете сгруппировать их. Например:
// change the month and year
let month = 2,
year = 2020;
let day = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
// leap year
if (((year % 4 == 0) &&
!(year % 100 == 0))
|| (year % 400 == 0))
day = 29;
else
day = 28;
break;
default:
throw Error('Invalid month');
}
console.log(`The month ${month} in ${year} has ${day} days`);Выход:
The month 2 in 2020 has 29 days
В этом примере возвращаются дни определенного месяца и года.
Если месяц равен 1,3, 5, 7, 8, 12, количество дней равно 31. Если месяц равен 4, 6, 9 или 11, количество дней равно 30. Если месяц равен 2, а год високосный, возвращается 29 дней, в противном случае возвращается 28 дней.
