1. 程式人生 > >C switch 語句

C switch 語句

一個 switch 語句允許測試一個變數等於多個值時的情況。每個值稱為一個 case,且被測試的變數會對每個 switch case 進行檢查。
語法
C 語言中 switch 語句的語法:

switch(expression)
{
    case constant-expression  :
       statement(s);
       break; /* 可選的 */
    case constant-expression  :
       statement(s);
       break; /* 可選的 */
  
    /* 您可以有任意數量的 case 語句 */
    default : /* 可選的 */
       statement(s);
}

switch 語句必須遵循下面的規則:
switch 語句中的 expression 是一個常量表達式,必須是一個整型或列舉型別。
在一個 switch 中可以有任意數量的 case 語句。每個 case 後跟一個要比較的值和一個冒號。
case 的 constant-expression 必須與 switch 中的變數具有相同的資料型別,且必須是一個常量或字面量。
當被測試的變數等於 case 中的常量時,case 後跟的語句將被執行,直到遇到 break 語句為止。
當遇到 break 語句時,switch 終止,控制流將跳轉到 switch 語句後的下一行。
不是每一個 case 都需要包含 break。如果 case 語句不包含 break,控制流將會 繼續 後續的 case,直到遇到 break 為止。
一個 switch 語句可以有一個可選的 default case,出現在 switch 的結尾。default case 可用於在上面所有 case 都不為真時執行一個任務。default case 中的 break 語句不是必需的。
流程圖
C 中的 switch 語句
例項

#include <stdio.h>
 
int main ()
{
   /* 區域性變數定義 */
   char grade = 'B';
 
   switch(grade)
   {
   case 'A' :
      printf("很棒!\n" );
      break;
   case 'B' :
   case 'C' :
      printf("做得好\n" );
      break;
   case 'D' :
      printf("您通過了\n" );
      break;
   case 'F' :
      printf("最好再試一下\n" );
      break;
   default :
      printf("無效的成績\n" );
   }
   printf("您的成績是 %c\n", grade );
 
   return 0;
}

當上面的程式碼被編譯和執行時,它會產生下列結果:
做得好
您的成績是 B