所以有可能将这个案例转变成另一个案例:
switch(variable) {
case 1:
// do something 1
case 2:
// do something 2
break;
case 3:
// do something 3
break;
}
但是如果我们想在完成主案例后执行多个其他案例,或者在主案例之后直接执行其他不是的案例怎么办?
例如伪代码:
switch(variable) {
case 1:
// do something 1
break;
case 2:
// do something 2
break;
case 3:
// do something 3
execute case 2;
execute case 1;
break;
}
我研究了标记语句的选项,但它似乎在这里不起作用。
我在这里看到的唯一选择是为每种情况创建新函数,但我想知道 - 是否有更好、更干净、更易读和/或更短的选项?
我正在寻找所有提示 - 无论是我缺少的某个关键字、您干净利落地完成此操作的个人提示,还是库,甚至来自其他语言(如打字稿等)的命题。
尼克帕森提出了这个很棒的想法:
也许将整个开关包装在一个接受变量的函数中并进行递归调用?
在这种情况下效果非常好;因此,将其合并到我发布的示例中并接受它作为答案:
mySwitch(variable);
function mySwitch(_v) {
switch(_v) {
case 1:
// do something 1
break;
case 2:
// do something 2
break;
case 3:
// do something 3
mySwitch(2);
mySwitch(1);
break;
}
}
它很干净,可以解决问题...此外 - 如果您在 switch 语句通常所在的位置声明函数(例如在某个外部函数内),您将能够更改在外部函数中声明的变量,就像您一样能够进入 switch 语句。