在Arduino中,循环结构用于重复执行代码块,主要有两种类型:`for`循环和`while`循环。
for循环
`for`循环适用于已知循环次数的情况。它的基本语法结构如下:
```cpp
for (initialization; condition; update) {
// 循环体(要重复执行的代码)
}
```
initialization(初始化):在循环开始前执行一次,通常用于设置循环计数器。
condition(条件):在每次循环迭代前测试,如果结果为`true`,则执行循环体;如果为`false`,则退出循环。
update(更新):在每次循环迭代后执行,通常用于更新循环计数器。
示例代码:
```cpp
for (int i = 0; i < 10; i++) {
Serial.println(i);
}
```
这段代码会打印从0到9的数字。
while循环
`while`循环适用于未知循环次数的情况,只要条件为`true`,就会一直执行循环体内的代码。其基本语法结构如下:
```cpp
while (condition) {
// 循环体(要重复执行的代码)
}
```
示例代码:
```cpp
int i = 0;
while (i < 10) {
Serial.println(i);
i++;
}
```
这段代码同样会打印从0到9的数字。
注意事项
为了避免无限循环,务必在循环体内设置适当的退出条件。
如果循环体内只有一条语句,可以省略大括号,但通常建议使用大括号以增强代码的可读性和可维护性。
示例:使用`loop()`函数
在Arduino的`loop()`函数中,可以编写需要不断执行的代码,例如读取传感器数据、控制电机或发送数据等。`loop()`函数在`setup()`函数执行完毕后开始循环执行,并且会一直运行直到Arduino板被重置或关闭。
示例代码:
```cpp
void setup() {
// 初始化串口通信
Serial.begin(9600);
}
void loop() {
// 读取数字传感器数据
int sensorValue = analogRead(A0);
// 将数据打印到串口
Serial.println(sensorValue);
// 延迟1秒
delay(1000);
}
```
这段代码会每隔一秒读取一次模拟传感器A0的数据,并将其打印到串口。