Javascript 一个switch语句中的多个表达式
这是我第一次在Javascript中使用Javascript 一个switch语句中的多个表达式,javascript,switch-statement,processing.js,Javascript,Switch Statement,Processing.js,这是我第一次在Javascript中使用switch语句。是否有一种方法可以在一个switch语句中计算多个条件,如下所示: var i = 1; switch(i && random(1)<0.3) { case (1): //code block break; case (2): //code block } var i=1; switch(i&&random(1)您可以这样做,但是switch语句将
switch
语句。是否有一种方法可以在一个switch语句中计算多个条件,如下所示:
var i = 1;
switch(i && random(1)<0.3) {
case (1):
//code block
break;
case (2):
//code block
}
var i=1;
switch(i&&random(1)您可以这样做,但是switch语句将打开您提供的表达式的结果
如果表达式中有逻辑and(&&
),则有两种可能的结果定义了&&
的工作方式
如果左侧表达式的计算结果为true,则表达式将等于第二部分的计算结果
如果左侧表达式的计算结果为false,则整个表达式的计算结果将为false
您可以在上阅读有关switch语句的更多信息。您可以执行以下操作:
var i = 1;
switch((i==1) + (Math.random(1)<0.3)*2) {
case 0:
//code block when neither is true
break;
case 1:
//code block when only i == 1
break;
case 2:
//code block when only random(1)<0.3
break;
case 3:
//code block when both i==1 and random(1)<0.3
break;
}
可以这样编写switch语句:
switch (true) {
case a && b:
// do smth
break;
case a && !b:
// do other thing
break;
}
唯一需要记住的是,&&不仅可以返回布尔值,而且可以返回任何其他值,如果“a”(在上面的代码段中)解析为某个假值。如果“b”是字符串,则a&&b(其中a为假)应返回字符串。
因此,当您使用此模式时,请始终确保&&expression的右侧解析为布尔值。这样,如果两个条件都为真,代码块将执行:两个条件?何时只执行第一个条件,何时只执行第二个条件,何时不执行任何条件?您可能希望使用+
而不是&
实际执行y&&
可以计算为非布尔结果,但是是的,当前脚本确实永远不会匹配任何案例。我想我必须说案例(5&&true)
@Roman同样适用于上述两点中描述的case语句块。我明白您对多个布尔表达式求值为true或false的意思。但是还有什么布尔表达式呢?@Roman如果您阅读我答案中的数字1和2,您就会明白。&&如果&&为false。否则将返回右手的求值。false&&4->false,true&&5->5
switch (true) {
case a && b:
// do smth
break;
case a && !b:
// do other thing
break;
}