TypeScript switch case

摘要:在本教程中,您将了解 TypeScript 的switch...case语句。

TypeScript switch case 语句简介

下面显示了switch...case语句的语法

switch ( expression ) {
   case value1:
       // statement 1
       break;
   case value2:
       // statement 2
       break;
   case valueN:
       // statement N
       break;
   default: 
       // 
       break;
}Code language: JavaScript (javascript)

工作原理

首先,switch...case语句评估expression

然后,它搜索第一个case子句,其表达式的计算结果与值(value1value2、…valueN)相同。

switch...case语句将执行第一个值匹配的case子句中的语句。

如果找不到匹配的case子句,则switch...case语句会查找可选的default子句。如果default子句可用,则执行default子句中的语句。

与每个case子句关联的break语句确保一旦case子句中的语句完成,控制权就会退出switch...case语句。

如果匹配的 case 子句没有break语句,则程序执行将继续执行switch...case语句中的下一条语句。

按照惯例,default子句是switch...case语句中的最后一个子句。但是,它不必如此。

TypeScript switch case 语句示例

让我们来看一些使用switch...case语句的示例。

1) 一个简单的 TypeScript switch case 示例

以下示例显示了一个简单的switch...case示例,该示例根据目标 ID 显示一条消息

let targetId = 'btnDelete';

switch (targetId) {
    case 'btnUpdate':
        console.log('Update');
        break;
    case 'btnDelete':
        console.log('Delete');
        break;
    case 'btnNew':
        console.log('New');
        break;
}Code language: JavaScript (javascript)

输出

Delete

在此示例中,targetId设置为btnDelete

switch...case语句将targetId与一系列值进行比较。因为targetId'btnDelete'匹配,所以执行相应case子句中的语句。

2) 分组 case 示例

如果您有一段由多个 case 共享的代码,您可以将它们组合在一起。例如


// 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`);Code language: JavaScript (javascript)

输出

The month 2 in 2020 has 29 days

此示例返回特定月份和年份的天数。

如果月份是 1、3、5、7、8 或 12,则天数为 31。如果月份是 4、6、9 或 11,则天数为 30。

如果月份是 2 且年份是闰年,则返回 29 天,否则返回 28 天。

本教程是否有帮助?