Оператор switch case в TypeScript

В этом руководстве вы познакомитесь с оператором 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 дней.

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript