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

例子:

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