"break statement" 没有正常工作

The "break statement" is just not working like it should

这是代码,但由于某些原因,当(distancia<100)时,("ALTO")仍然出现,与另一个while循环相同

while (distancia<200 && distancia>100)
{
    lcd.print("ALTO");
    delay(1000);
    lcd.clear();
    delay(1000);

  if(distancia<100)
  {
    break;
 }
}
 while(distancia<100)
  {
    lcd.print("INTRUSO EN");
    lcd.setCursor(0,1);
    lcd.print("LA PUERTA");
    tone(11,700,250);
    digitalWrite(8,HIGH);
    delay(500);
    lcd.clear();
    digitalWrite(8,LOW);
    delay(500);

    if(distancia>100);
    {
       break;
    }
}
}

这是你的 while 循环:

while (distancia<200 && distancia>100)

这是你的条件:

if(distancia<100);
{
   break;
}

一个变量不能同时大于和小于100所以if基本没用

while (distancia<200 && distancia>100)
{
    lcd.print("ALTO");
    ...
  if(distancia<100)
  {
    break;
  }
}
  1. while条件保证distancia > 100,所以你内心的if没用
  2. 在循环内部你没有改变distancia意味着循环是无限的 - 对我来说似乎是一个错误。