为什么 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)