switch語句允許一個變量來對值的列表相等進(jìn)行測試。每個值被稱為一個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); }
以下規(guī)則適用于switch語句:
在switch語句中使用的表達(dá)式必須有一個整體或枚舉類型,或者是一個類類型,其中的類有一個單一的轉(zhuǎn)換函數(shù)將一個整數(shù)或枚舉類型。
一個switch可以有任何數(shù)量的case語句。每個case后面進(jìn)行比較的值和一個冒號。
常數(shù)在表達(dá)式case后,必須具有相同的數(shù)據(jù)類型作為switch變量,它必須是一個常量或文字。
當(dāng)被打開了變量等于case,下列case語句將執(zhí)行,直到break語句為止。
當(dāng)達(dá)到一個break語句,switch終止,并且控制流程跳轉(zhuǎn)到下一行下面的switch語句。
不是每一種case 需要包含break。如果沒有出現(xiàn)break,控制流將下降通過之后的case直到出現(xiàn)break為止。
switch語句可以有一個可選默認(rèn)情況下,它必須出現(xiàn)在switch的結(jié)束。缺省情況下,可用于執(zhí)行任務(wù)時,所有case都不為true。在默認(rèn)casebreak 不是必要的。
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; }
當(dāng)上面的代碼被編譯并執(zhí)行,它會產(chǎn)生以下結(jié)果:
Well done Your grade is B