switch(expression) { // 依次匹配 expression 的结果和哪一个 case 相同,并执行该 case 下的语句
case a: // a 必须是字面值,不能是变量,且只允许 byte int short char 和 string
// do something
break; // 用于退出 switch 程序块
case b:
// [statement]
break;
// 可以写无限个 case
default: // 如果都不匹配,则执行这个,default 必须放到 switch-case 程序块最下面
// do something
}
Multi-case
当程序匹配到 case 后,会执行 switch 块内该 case 下(和其余 case)的所有内容。所以大部分分支最后面都需要 break 来退出 switch-case 程序块。比如如下的程序:
switch(character) {
case "A":
println("a");
case "B":
println("b");
case "D":
println("d");
case "E":
println("e");
default:
println("default");
}
如果 character 是 B 的话,则会依次打印 b d e 和 default。这往往是我们不想看见的,所以记得每个分支最后加上 break!
但你也可以稍稍改一下下...
switch(expression) { // 依次匹配 expression 的结果和哪一个 case 相同,并执行该 case 下的语句
case a:
// do something
break;
case b:
case c: // 当 expression 为 b 或 c 时执行下面的语句
// [statement]
break;
default:
// do something
}
var grade as string = "B";
switch(grade) {
case "A":
println("excellent");
break;
case "B":
case "C":
println("good");
break;
case "D":
println("pass");
break;
case "E":
println("fail");
break;
default:
println("unknown grade");
}