我的 Main.js 文件中有以下 if else 语句:
var fixA = "Trap";
var fixB = "Ball";
console.log(fixA);
console.log(fixB);
if (fixA == "Mouse" || fixA == "Ball" && fixB == "Mouse" || fixB == "Ball") {
console.log("Ball hit mouse");
}else if (
fixA == "Trap" || fixA == "Ball" && fixB == "Trap" || fixB == "Ball") {
console.log("Ball hit trap");
}else if (
fixA == "Trap" || fixA == "Mouse" && fixB == "Trap" || fixB == "Mouse") {
console.log("Trap hit mouse");
}
在我原来的声明中,fixA
和 fixB
变量是根据相互碰撞的对象分配的,但这是行不通的。它一直显示“Ball hit mouse”,这是 if() 的结果。
我自己寻找问题,我给了 fixA
和 fixB
一个固定的字符串,这再次导致相同的输出。甚至我的前两个控制台日志在设置变量后立即记录正确的字符串。所以这句话本身肯定有问题。我做了一些阅读、研究等,但我似乎无法弄清楚它有什么问题。
有人能帮帮我吗?
最佳答案
看看 operator precendece的JavaScript。 &&
运算符比 ||
运算符绑定(bind)更强。您可以通过在条件中添加括号来规避此行为。
if ( (fixA == "Mouse" || fixA == "Ball") && (fixB == "Mouse" || fixB == "Ball")) {
console.log("Ball hit mouse");
}else if (
(fixA == "Trap" || fixA == "Ball") && (fixB == "Trap" || fixB == "Ball")) {
console.log("Ball hit trap");
}else if (
(fixA == "Trap" || fixA == "Mouse") && (fixB == "Trap" || fixB == "Mouse")) {
console.log("Trap hit mouse");
}
关于javascript - 为什么我的 if else 语句返回不正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23106429/