我正在尝试编写一个&#34; switch&#34; 语句,但我已经严格定义了案例,我希望尽可能少地使用代码。因此,当我想知道怎么做时,我想到了一个想法,是否可以在&#34;&#34; <&#34; <中添加&#34; if&#34; 语句/ em>所以,如果&#34;如果&#34; 语句为真,则将更多案例添加到我的&#34;切换&#34; 。例如:
switch(myVar) {
case 1:
return 'Your variable is 1';
case 2:
return 'Your variable is 2';
if(yourVar && yourVar === true) {
case 3: return 'Your variable is 3';
}
default: return 0;
}
P.S。我使用的真实场景更复杂,而且代码非常长,所以如果它们符合用例,那么欢迎使用任何sugestions。
答案 0 :(得分:2)
也许你会稍微改变你的逻辑。您可以省略break
语句,因为您使用return
结束了该功能。
switch(true) {
case myVar === 1:
return 'Your variable is 1';
case myVar === 2:
return 'Your variable is 2';
case yourVar:
return 'Your variable is 3';
default:
return 0;
}
答案 1 :(得分:2)
将测试移到案例中,如果失败则通过:
switch(myVar) {
case 1:
return 'Your variable is 1';
case 2:
return 'Your variable is 2';
case 3:
if (yourVar) return 'Your variable is 3';
/* fall through */
default:
return 0;
}
答案 2 :(得分:1)
你可以这样做
function test(myVar, yourVar) {
switch(myVar) {
case 1: return '1';
case 2: return '2';
default:
// as requested in a comment, add yourVar to myVar
if(myVar != undefined && yourVar != undefined) return myVar + yourVar;
return '0';
}
}
alert(test(2));
alert(test(3));
alert(test(3,5));
alert(test(3,0));
答案 3 :(得分:0)
switch(myVar) {
case 1:
return 'Your variable is 1';
case 2:
return 'Your variable is 2';
case 3:
if(yourVar && yourVar === true) {
return 'Your variable is 3';
}else{
return 0:
}
default: return 0;
}