跳到主要内容

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;
}

怎么运行的:

首先,switch...case 语句计算 expression

然后,它搜索第一个 case 子句,其表达式的计算结果与值 (value1, value2, …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;
}

输出:

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`);

输出:

The month 2 in 2020 has 29 days

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

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

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