何时使用while循环或if语句?

时间:2014-12-11 23:10:11

标签: if-statement while-loop arduino

你能举一些例子说明while循环和if循环是否合适?

我正在研究这个项目,其中Arduino从可变电阻读取模拟输入。 这就是我阅读原始输入的方法:

int intputValue = analogRead(A0);

然后我将原始输入转换为0到100之间的数字作为百分比:

double percentValue = inputValue * (1.0/10.23);

然后我用这个percentValue来确定Arduino是否需要通过它的几个数字引脚发送信号。我有信号转到4通道继电器模块。基本上我的想法是,如果percentValue在0-25之间,其中一个继电器将打开,因此只需要激活一个数字引脚。在26-50之间,两个引脚,51-75,三个引脚和76-100,四个引脚。

这是我的问题:我应该使用if语句:

if(percentValue >=0 && percentValue <=25){
   digitalWrite(pin1, HIGH);      //turns on pin 1
}

或使用while循环:

while(percentValue >= 0 && percentValue <=25){
   digitalWrite(pin1, HIGH);       //turns on pin 1
}

然后我会为其余的percentValue范围做类似的事情。 使用&#34; if&#34;之间是否有区别? &#34;而&#34;而&#34;在这种情况下?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

while循环用于运行特定代码块,只要满足某些参数即可。 if语句类似,但它只会运行一次所述代码块,但会运行while语句,直到另有说明为止。

如此有效:

while(1 == 1)
{
    System.out.println("Hello World");
}

将无限期地打印 Hello World 。另一方面:

if(1 == 1)
{
    System.out.println("Hello World");
}

将打印 Hello World 一次。

对于Funnzies来说,因为你对套路的低调是阴暗的; for循环将运行指定的次数:

for(int i = 0; i < 3; i++)
{
    System.out.println("Hello World");
}

将打印 Hello World 3次。

参考:

While loop

For loop

If statement

General Java Tutorials

答案 1 :(得分:0)

您的代码中应该有setuploop功能,您可以将if放入loop功能中。

void setup() {
  // put your setup code here, to run once:
  int intputValue = analogRead(A0);
}

void loop() {
  // put your main code here, to run repeatedly: 
  double percentValue = inputValue * (1.0/10.23);
  if(percentValue >= 0 && percentValue <= 25){
     digitalWrite(pin1, HIGH);      //turns on pin 1
  }
}

答案 2 :(得分:0)

“然后我将为其余的percentValue范围做类似的事情。”

这意味着您应该使用if语句,而不是while循环,特别是如果您想对设备执行任何其他操作。

据推测,这段代码将被放置在Arduino loop()函数中,该函数被重复调用,为您提供循环。你不希望Arduino陷入你自己的while循环中。

根据读数,您似乎想要点亮不同的LED。您还需要关闭if语句正文中的其他LED。否则,Arduino最终将使所有4个LED点亮。

if(percentValue >=0 && percentValue <=25){
   digitalWrite(pin1, HIGH);      //turns on pin 1
   digitalWrite(pin2, LOW);
   digitalWrite(pin3, LOW);
   digitalWrite(pin4, LOW); 
}
// etc.