如何同时运行两个不同功能的案例?
问题描述:
我知道如果所有人都做同样的动作,就可以运行多个案例。考虑下面的例子中,如果这是真的,A和B,然后做一些事情......如何同时运行两个不同功能的案例?
switch(true){
case A:
case B:
//do something;
break;
case C:
//do something else;}
但是,我不知道如何使它如下工作:
switch(true){
case A:
alert("A");
case B:
alert("B");
break;
case C:
//do something else;}
如果A和B都应该提醒A和B。可能的话,switch语句对于这个例子不是一个好的选择,但我无法弄清楚这一点。任何建议,建议?
答
我想你想使用switch
不当,它看起来像你想检查是否A
,B
和C
是真的,如果他们运行匹配alert()
。 一个switch
的目的是检查所给出的值是什么(所以只有一种情况可能是真的),并运行它,就像这样:
function demoFunction1(fruit){
var sentence = "";
switch (fruit) {
case "apple": sentence = "I love apples!"; break;
case "banana": sentence = "I hate bananas!"; break;
case "watermelon": sentence = "Watermelon is okay"; break;
}
alert(sentence);
}
所以这是检查什么的fruit
值,如果它是"apple"
,"banana"
或"watermelon"
它将运行匹配案例的代码。
它看起来对我来说,你想做的用途是if语句,像这样:
function demoFunction2(A, B, C){
if (A) {
alert("A");
}
if (B) {
alert("B");
}
if (C) {
alert("C");
}
}
这样,如果A
,B
和C
是true
独立,如果任何人都那么什么是你正在检查if语句的{}
将运行(例如函数调用或本例中的警报)。这将适用于A
,B
和C
的任何组合,其为true
/false
。
答
所以你对解释你的问题感到困惑。
case A:
case B:
//do something;
这是一个或条件,如果它是A或者如果它是B,则它变为true并执行。
你在找什么
如果这是真的,A和B,它应提醒“A”和“B”。
在这种情况下,开关将不起作用。回到tradational else if
if (str.equals("A") && str.equals("B")) {
alert("A");
alert("B");
}else if(str.equals("C")){
alert("C");
}else...... // other conditions
答
你应该基本上从不使用switch(true)
(除非你需要大量的跌落),使用if
/else
更清洁。在你的情况,你会
if (A || B) {
// do something;
} else if (C) {
// do something else;
}
,并可能平凡更改为
if (A && B) {
alert("A");
alert("B");
} else if (C) {
// do something else;
}
当适合您的新的要求。(是的,你也可以做case A && B:
但这很难理解)
究竟是什么问题?这与发布无关。 – Pointy
这还不清楚 - 这怎么可能是两个不同的情况? –
@OliverCharlesworth看起来像'&&'条件,其中第一种情况是'||':) –