cod*_*ode 5 javascript c java syntax switch-statement
switch 语句的典型语法是:
switch(expression) {
case one:
// do something...
break;
case two:
// do something else...
break;
case three:
case four:
// do something special
break;
default:
// if nothing matches...
break;
}
Run Code Online (Sandbox Code Playgroud)
这种语法看起来非常像 Python(尤其是冒号和人们缩进的方式),与 JavaScript、Java 或 C 等语言的一般语法相反,在这些语言中,大多数语句都使用大括号。有什么具体原因吗?
我希望它看起来应该更像:
switch(expression) {
case (one) {
// do something...
break;
} case (two) {
// do something else...
break;
} case (three) case (four) {
// do something special
break;
} default {
// if nothing matches...
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我刚刚提供的示例看起来像 if-else if-else 语句,但是 switch 语句不应该与语法风格匹配吗?
case语句实际上在 C 中被视为标签,类似于goto. 为什么要这样设计很难回答,需要深入研究丹尼斯·里奇的各种旧出版物。
更重要的是,现在,您可以使用switch带牙套的工具,这甚至被认为是很好的做法。这是有效的 C(和 C++):
switch(expression)
{
case one:
{
// do something...
break;
}
case two:
{
// do something else...
break;
}
case three:
case four:
{
// do something special
break;
}
default:
{
// if nothing matches...
break;
}
}
Run Code Online (Sandbox Code Playgroud)
现在您甚至可以在每个案例中声明局部变量。