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 不是必要的。
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