gpt4 book ai didi

javascript - 为什么我的 if else 语句返回不正确的结果?

转载 作者:行者123 更新时间:2023-11-30 07:24:18 24 4
gpt4 key购买 nike

我的 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");
}

在我原来的声明中,fixAfixB 变量是根据相互碰撞的对象分配的,但这是行不通的。它一直显示“Ball hit mouse”,这是 if() 的结果。

我自己寻找问题,我给了 fixAfixB 一个固定的字符串,这再次导致相同的输出。甚至我的前两个控制台日志在设置变量后立即记录正确的字符串。所以这句话本身肯定有问题。我做了一些阅读、研究等,但我似乎无法弄清楚它有什么问题。

有人能帮帮我吗?

最佳答案

看看 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com