切换(Javascript和C#)和选择…大小写(VBScript)的语言语法-组合大小写
在VB中,如果我想合并一个case语句,它将如下所示切换(Javascript和C#)和选择…大小写(VBScript)的语言语法-组合大小写,c#,javascript,vbscript,C#,Javascript,Vbscript,在VB中,如果我想合并一个case语句,它将如下所示 Select (somevalue) Case 1, 2, 3: Do Something End Select 在C#和Javascript中 switch (someValue) { case 1: case 2: case 3: //dosomething break; } 但是,这在Javascript中运行时没有错误 switch (someValue) { case 1, 2,
Select (somevalue)
Case 1, 2, 3:
Do Something
End Select
在C#和Javascript中
switch (someValue) {
case 1:
case 2:
case 3:
//dosomething
break;
}
但是,这在Javascript中运行时没有错误
switch (someValue) {
case 1, 2, 3:
break;
}
但并没有达到预期的效果。它到底在做什么
我问这个问题的原因是,如果我将鼠标悬停在firebug中的1、2或3上,它会将手表指定为false。很明显,代码正在计算,但它在计算什么。按从左到右的顺序计算两个操作数,返回最右边的操作数。所以,你基本上写了
switch (someValue) {
case 3:
break;
}
MDarwi打败了我但他还是成功了
<script type="text/javascript">
var x = 5;
switch (x)
{
case 5, 6, 7:
document.write("<b>This should work on 5, 6 or 7.</b>");
break;
case 0:
document.write("<b>This should work on 0.</b>");
break;
}
</script>
var x=5;
开关(x)
{
案例5、6、7:
写下(“这应该在5、6或7日起作用”);
打破
案例0:
document.write(“这应该适用于0”);
打破
}
…仅当x==7时写入第一个大小写。您也可以使用:
switch(true) {
case (somevalue <= 3): /* action if <= 3 */ break;
case (somevalue <= 6): /* action if <= 6 */ break;
//[etc]
default: 'no action'
}
另请参见
1,2,3
是一个计算结果为3
的表达式。您应该期望案例1 | 2 | | | 3起作用,碰巧知道它为什么不起作用?@Kooilnc这不是同一件事,第一个操作数(1)的计算结果为“true ish”,因此返回的就是它。谢谢。我认为这是这个答案的一个书签。
Number.prototype.In = function(){
var i = -1, args = arguments;
while (++i<args.length){
//use float for all numbers
if (parseFloat(this) === parseFloat(args[i])){
return true;
}
}
return false;
};
switch(true) {
case somevalue.In(1,2,3): /* action if 1,2,3 */ break;
case somevalue.In(6,10,14): /* action if 6,10,14 */ break;
//[etc]
default: 'no action'
}