上一章TypeScript教程请查看:TypeScript条件语句
TypeScript switch语句从多个条件执行一个语句。它根据表达式的值计算表达式的值,这些值可以是Boolean、number、byte、short、int、long、enum类型、string等。switch语句有一个对应于每个值的代码块。当找到匹配项时,将执行相应的块。switch语句的工作原理类似于if-else-if分支语句。
在switch语句中必须记住以下几点:
- 一个switch语句中可能有N种情况。
- 大小写值必须是惟一的。
- 大小写值必须是常量。
- 每个case语句在代码末尾都有一个break语句。break语句是可选的。
- switch语句的末尾有一个默认的块。默认语句是可选的。
switch(expression){case expression1:
//code
break;
//可选case expression2:
//code
break;
//可选
........default:
//如果没有匹配的情况,则执行此块;
break;
//可选
}
- switch语句包含以下的东西,在一个switch语句可以有任意数量的情况。
- case:此case应该紧随其后的是只有一个常数,然后一个分号。它不能接受另一个变量或表达式。
- break:break应该写在最后以阻止出来后的switch语句块执行情况。如果我们不写,继续执行后续情况下块匹配的价值。
- default:默认块应该写在switch语句的结束。它执行时没有将匹配。
文章图片
例子
let a = 3;
let b = 2;
switch (a+b){
case 1: {
console.log("a+b is 1.");
break;
}
case 2: {
console.log("a+b is 5.");
break;
}
case 3: {
console.log("a+b is 6.");
break;
}default: {
console.log("a+b is 5.");
break;
}
}
使用字符串的switch case
let grade: string = "A";
switch (grade)
{
case'A+':
console.log("Marks >= 90"+"\n"+"Excellent");
break;
case'A':
console.log("Marks [ >= 80 and <
90 ]"+"\n"+"Good");
break;
case'B+':
console.log("Marks [ >= 70 and <
80 ]"+"\n"+"Above Average");
break;
case'B':
console.log("Marks [ >= 60 and <
70 ]"+"\n"+"Average");
break;
case'C':
console.log("Marks <
60"+"\n"+"Below Average");
break;
default:
console.log("Invalid Grade.");
}
在本例中,我们有一个字符串变量grade,switch语句计算等级变量值并与case子句匹配,然后执行其关联的语句。
使用enum枚举类型的switch case在TypeScript中,我们可以通过以下方式使用带有Enum的switch case。
例子
enum Direction {
East,
West,
North,
South
};
var dir: DirectionDirection = Direction.North;
function getDirection() {
switch (dir) {
case Direction.North: console.log('You are in North Direction');
break;
case Direction.East: console.log('You are in East Direction');
break;
case Direction.South: console.log('You are in South Direction');
break;
case Direction.West: console.log('You are in West Direction');
break;
}
}
getDirection();
TypeScript Switch语句和fall-throughTypeScript switch语句是fall-through,它的意思是,如果没有出现break语句,那么它将在第一个匹配后执行所有语句。
例子
let number = 20;
switch(number)
{
//中断语句的情况
case 10: console.log("10");
case 20: console.log("20");
case 30: console.log("30");
default: console.log("Not in 10, 20 or 30");
}
推荐阅读
- TypeScript while循环语句 – TypeScript开发教程
- TypeScript条件语句 – TypeScript开发教程
- TypeScript数字类型用法和操作 – TypeScript开发教程
- TypeScript字符串用法和操作 – TypeScript开发教程
- TypeScript元组用法和操作 – TypeScript开发教程
- TypeScript数组用法和操作 – TypeScript开发教程
- TypeScript类型断言 – TypeScript开发教程
- TypeScript类型推断 – TypeScript开发教程
- TypeScript使用类型注解 – TypeScript开发教程