我可以以某种方式在开关中使用 if 语句来添加更多案例吗?
Can I somehow use if statement in switch to add more cases?
我正在尝试编写一个"switch"语句,但我有严格定义的大小写,我想使用尽可能少的代码。因此,当我想知道如何做到这一点时,我想到了一个想法,是否可以在"开关"中添加"if"语句,因此如果这个"if"语句为真,则可以在我的"开关"中添加更多情况。例如:
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;
}
附言我使用的真实场景要复杂得多,代码真的很长,所以如果它们适合用例,欢迎任何建议。
你可以这样做
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));
也许你稍微移动一下你的逻辑。您可以省略 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;
}
将测试移到机箱内,如果失败,则失败:
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;
}
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;
}
相关文章:
- 在Javascript中为if/else语句添加OR
- XSLT在IF语句后添加图书价格
- 向函数添加多条语句
- HTMLJavascript-如何向输入语句添加函数并隐藏输入语句,除非选中“是”,然后取消隐藏
- JQuery 悬停代码:添加 If 语句会破坏它
- 这是一个有 2 个条件的条件语句,我需要添加第三个条件
- 如何在 if else 语句期间添加暂停/延迟
- Javascript 缩短了 if 语句添加 else 语句
- 如何在下划线模板中添加 else 语句
- if 语句以更改添加到添加数量的新行
- 如何将 if 语句添加到切换函数
- 如何向此 jQuery 语句添加更多内容
- else 语句不将内容添加到文本区域
- jquery/JavaScript:添加一个 else 语句
- 如何更改“动物”的原型并添加方法“sayName”来打印语句
- 从通过 echo 语句动态添加的表单元素中获取 POST 值
- 将 php 变量添加到从之前转换为 php 的 html/javascript 语句中
- 如何添加 if 语句以循环图像
- 如何创建带有参数的函数调用语句并添加函数
- 在Neo4J中通过Cypher添加语句之前摆脱/转义不需要的符号