有人能告诉我这个 if 声明有什么问题吗?
如果我自己使用两个主要条件中的任何一个,那么该语句可以正常工作,但是当我添加中间&&声明,它停止工作。我在网上搜索过,看不出有什么问题。
P.S 即可。我甚至可以将中间的&& 更改为 || 语句,它也能正常工作。我很困惑。
if ((containerId.id == "LineOne" && dropLoc == "dropLocation1.1") && (containerId.id == "LineTwo" && dropLoc == "dropLocation2.2"))
{
alert("finished");
cdpause();
}
答案 0 :(得分:3)
我在网上搜索过,看不出有什么问题请帮忙! :)
我甚至可以改变那个中间&&到||声明,它也适用
因为containerId.id
不能同时为LineOne
和LineTwo
。
同样,dropLoc
无法同时拥有两个值。
但它可以包含两个值之一,因此请将&&
替换为||
。
if ((containerId.id == "LineOne" && dropLoc == "dropLocation1.1") ||
(containerId.id == "LineTwo" && dropLoc == "dropLocation2.2"))
{
alert("finished");
cdpause();
}
答案 1 :(得分:0)
您可以使用OR组合两个检查,因为,您不能同时拥有两个不同的值。
除此之外,您不需要括号,因为operator precedence logical AND &&
超过logical OR ||
。
if (
containerId.id == "LineOne" && dropLoc == "dropLocation1.1" ||
containerId.id == "LineTwo" && dropLoc == "dropLocation2.2"
) {
alert("finished");
cdpause();
}
答案 2 :(得分:0)
像Satpal说的那样
if(containerId.id == "LineOne" && dropLoc == "dropLocation1.1") || (containerId.id == "LineTwo" && dropLoc == "dropLocation2.2")
答案 3 :(得分:0)
你已经有了正确的解决方案,你应该有一个 || (或)而不是&& (和)。
它是基本的布尔逻辑:你有两个带有“和”的表达式,并且如果其中任何一个表达式为真,你想要执行你的代码,所以你用“或”加入这些表达式。
“如果名字是约翰,那是星期一,或者名字是简,而且是星期二,那么请提醒他们购买杂货。” =>周一,约翰轮到去购物,周二是Jane的。