为什么 if 语句在参数不为真时触发?
Why is an if statement triggering without the parameters present being true?
我刚刚遇到这样一种情况,尽管参数不正确,但 if 语句仍在不断触发。
function draw(){
if(5<mouseX<10 && 5<mouseY<10){
background(100);
} else (background(200));
}
当运行以上程序时,无论我把鼠标移到哪里,背景值总是100。
我试图在 mouseClicked
函数中创建一个按钮,成功地找到了我的基本误解问题。如果有帮助,我会在 p5js 中 运行。
你的if-statement
应该如下:
if(5<mouseX && mouseX<10 && 5<mouseY && mouseY<10)
此行为背后的原因是:
if(5<mouseX<10 && 5<mouseY<10){
background(100);
} else (background(200));
当 javascript 引擎读取 5<mouseX
它 returns true 然后读取 true<10
这也是 true
因为这里 js 引擎将 true 视为 1
并且条件 1<10
始终为真。表达式的其他部分也会发生这种情况。
尝试使用:
if(5<mouseX && mouseX<10 && 5<mouseY && mouseY<10)
我刚刚遇到这样一种情况,尽管参数不正确,但 if 语句仍在不断触发。
function draw(){
if(5<mouseX<10 && 5<mouseY<10){
background(100);
} else (background(200));
}
当运行以上程序时,无论我把鼠标移到哪里,背景值总是100。
我试图在 mouseClicked
函数中创建一个按钮,成功地找到了我的基本误解问题。如果有帮助,我会在 p5js 中 运行。
你的if-statement
应该如下:
if(5<mouseX && mouseX<10 && 5<mouseY && mouseY<10)
此行为背后的原因是:
if(5<mouseX<10 && 5<mouseY<10){
background(100);
} else (background(200));
当 javascript 引擎读取 5<mouseX
它 returns true 然后读取 true<10
这也是 true
因为这里 js 引擎将 true 视为 1
并且条件 1<10
始终为真。表达式的其他部分也会发生这种情况。
尝试使用:
if(5<mouseX && mouseX<10 && 5<mouseY && mouseY<10)