D語言switch語句


switch語句允許一個變數來對值的列表相等進行測試。每個值被稱為一個case,並且在接通該變數被檢查每個switch case。

語法

在D程式設計語言中的switch語句的語法如下:

switch(expression){
    case constant-expression  :
       statement(s);
       break; /* optional */
    case constant-expression  :
       statement(s);
       break; /* optional */
  
    /* you can have any number of case statements */
    default : /* Optional */
       statement(s);
}

以下規則適用於switch語句:

  • 在switch語句中使用的表示式必須有一個整體或列舉型別,或者是一個類型別,其中的類有一個單一的轉換函式將一個整數或列舉型別。

  • 一個switch可以有任何數量的case語句。每個case後面進行比較的值和一個冒號。

  • 常數在表示式case後,必須具有相同的資料型別作為switch變數,它必須是一個常數或文字。

  • 當被開啟了變數等於case,下列case語句將執行,直到break語句為止。

  • 當達到一個break語句,switch終止,並且控制流程跳轉到下一行下面的switch語句。

  • 不是每一種case 需要包含break。如果沒有出現break,控制流將下降通過之後的case直到出現break為止。

  • switch語句可以有一個可選預設情況下,它必須出現在switch的結束。預設情況下,可用於執行任務時,所有case都不為true。在預設casebreak 不是必要的。

流程圖:

switch statement in D

例子:

import std.stdio;
 
int main ()
{
   /* local variable definition */
   char grade = 'B';

   switch(grade)
   {
   case 'A' :
      writefln("Excellent!" );
      break;
   case 'B' :
   case 'C' :
      writefln("Well done" );
      break;
   case 'D' :
      writefln("You passed" );
      break;
   case 'F' :
      writefln("Better try again" );
      break;
   default :
      writefln("Invalid grade" );
   }
   writefln("Your grade is  %c", grade );
 
   return 0;
}

當上面的程式碼被編譯並執行,它會產生以下結果:

Well done
Your grade is B