你能举一些例子说明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;在这种情况下?
感谢您的帮助。
答案 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次。
参考:
答案 1 :(得分:0)
您的代码中应该有setup
和loop
功能,您可以将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.