我正在实施以下代码
if (t1==1)
{
digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);
digitalWrite(l3, LOW);
digitalWrite(l4, LOW);
while(t2!=1)
{
digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);
t2 = digitalRead(IR2);
}
digitalWrite(l1, LOW);
digitalWrite(l2, LOW);
delay(10);
}
我的问题是,这是否会被接受,或者像我们在python中使用的那样被接受。
我对代码的解释:
控制流程将进入"如果"如果条件满足则循环并执行接下来的4行。然后while循环将执行直到t2!= 1。一旦t2的值等于1,就应执行最后两个语句。
如果错误请更正。谢谢
答案 0 :(得分:1)
你是对的。
如果将digitalWrite
替换为printf
并在c或c ++编译器中运行它,您将看到结果:
#include <stdio.h>
int main()
{
int t1 = 1;
int t2 = 2; //Make this higher if you want to see the while loop run longer
if (t1 == 1)
{
printf("l1, HIGH\n");
printf("l2, HIGH\n");
printf("l3, LOW\n");
printf("l4, LOW\n");
while(t2 != 1)
{
printf("l1, HIGH\n");
printf("l2, HIGH\n");
//t2 = digitalRead(IR2);
t2 = t2 - 1; //Make t2 be one less each time the loop runs
}
printf("l1, LOW\n");
printf("l2, LOW\n");
//delay(10);
}
}
结果:
l1, HIGH
l2, HIGH
l3, LOW
l4, LOW
l1, HIGH
l2, HIGH
l1, LOW
l2, LOW
试试here。