TypeScript - switch…case 语句



在 TypeScript 中,switch 语句会评估一个表达式,将表达式的值与 case 子句匹配,并执行与该 case 关联的语句。

可以使用多个 if...else 语句来实现类似的功能。但是,这并不是最佳方法,尤其是在所有分支都依赖于单个值时。

语法

TypeScript 中 switch case 的语法如下:

switch(variable_expression) { 
   case constant_expr1: { 
      //statements; 
      break; 
   } 
   case constant_expr2: { 
      //statements; 
      break; 
   } 
   default: { 
      //statements; 
      break; 
   } 
} 

变量表达式的值将针对 switch 中的所有 case 进行测试。如果变量与其中一个 case 匹配,则执行相应的代码块。如果没有任何 case 表达式与变量表达式的值匹配,则执行 default 块中的代码。

switch 语句适用以下规则:

  • switch 中可以包含任意数量的 case 语句。

  • case 语句只能包含常量。它不能是变量或表达式。

  • 变量表达式的类型和常量表达式的类型必须匹配。

  • 除非在每个代码块之后放置 break,否则执行将流入下一个代码块。

  • case 表达式必须唯一。

  • default 块是可选的。

流程图

下面的流程图解释了 switch-case 语句的工作原理。

Switch Case Statement

示例:switch…case

var grade:string = "A"; 
switch(grade) { 
   case "A": { 
      console.log("Excellent"); 
      break; 
   } 
   case "B": { 
      console.log("Good"); 
      break; 
   } 
   case "C": {
      console.log("Fair"); 
      break;    
   } 
   case "D": { 
      console.log("Poor"); 
      break; 
   }  
   default: { 
      console.log("Invalid choice"); 
      break;              
   } 
}

此示例将变量 grade 的值与一组常量 (A、B、C、D 和 E) 进行比较,并执行相应的代码块。如果变量中的值与上面提到的任何常量都不匹配,则将执行 default 块。

编译后,将生成以下 JavaScript 代码:

var grade = "A";
switch (grade) {
   case "A": {
      console.log("Excellent");
      break;
   }
	
   case "B": {
      console.log("Good");
      break;
   }
	
   case "C": {
      console.log("Fair");
      break;
   }
	
   case "D": {
      console.log("Poor");
      break;
   }
	
   default: {
      console.log("Invalid choice");
      break;
   }
}

以上代码将产生以下输出:

Excellent

示例:无 break 语句

当您在 switch 语句中不使用 break 语句时,将继续执行下一个 case,而不会终止它。

在下面的示例中,我们没有在任何 case 中使用 break 语句。它会执行所有 case 并打印相应的值。

var grade: string = 'A';
console.log("Entering switch block");
switch(grade) { 
   case "A": { 
      console.log("Excellent"); 
   } 
   case "B": { 
      console.log("Good"); 
   } 
   case "C": {
      console.log("Fair"); 
   } 
   case "D": { 
      console.log("Poor"); 
   }  
   default: { 
      console.log("Invalid choice");          
   } 
}
console.log("Exiting switch block");

编译后,将生成以下 JavaScript 代码。

var grade = 'A';
console.log("Entering switch block");
switch (grade) {
    case "A": {
        console.log("Excellent");
    }
    case "B": {
        console.log("Good");
    }
    case "C": {
        console.log("Fair");
    }
    case "D": {
        console.log("Poor");
    }
    default: {
        console.log("Invalid choice");
    }
}
console.log("Exiting switch block");

以上示例代码的输出如下:

Entering switch block
Excellent
Good
Fair
Poor 
Invalid choice
Exiting switch block
广告