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 天。