在javascript switch
语句中,如果case
中的任何一个满意,我想执行一些函数:
switch (myVar){
case 0:
do_something_0();
break;
case 1:
do_something_1();
break;
// I want to execute myFunc() if myVar === 1 or myVar === 2
}
我提出了这样的辅助变量haveMatched
的想法。
var haveMatched=false;
switch (myVar){
case 0:
do_something_0();
haveMatched=true;
break;
case 1:
do_something_1();
haveMatched=true;
break;
}
if (haveMatched){
do_finally();
}
我认为可能有更好的方法来实现这一点(例如,如果我不了解default:
关键字,我会尝试类似的方式)。我做得对,还是我错过了什么?
答案 0 :(得分:13)
如果您重写代码以包含默认案例,则不必在每种情况下都包含haveMatched = true
。
var haveMatched=true;
switch (myVar){
case 0:
do_something_0();
break;
case 1:
do_something_1();
break;
default:
haveMatched = false;
}
if (haveMatched){
do_finally();
}
答案 1 :(得分:1)
为什么不把函数放在案例中:
switch (myVar){
case 0:
do_something_0();
do_finally();
break;
case 1:
do_something_1();
do_finally();
break;
}
答案 2 :(得分:1)
在每个案例块中包含该函数,您不需要标志......
switch (myVar){
case 0:
do_something_0();
do_finally();
break;
case 1:
do_something_1();
do_finally();
break;
}
答案 3 :(得分:0)
这是一种解决方法:
try {
switch (option) {
case 0:
console.log("option 0");
break;
case 1:
console.log("option 1");
break;
default:
}
} catch (err) {
throw err;
} finally {
doActionFinally();
}