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
廣告