while

说明

while循环将会连续地无限地循环,直到圆括号()中的表达式变为假。被测试的表达式变量必须被改变,否则while循环将永远不会中止。可以在代码改变测试变量,比如让该变量递增,或者通过外部条件改变测试变量,比如将一个传感器的读数赋值给测试变量。

结构

[c gutter=”false”]
while(表达式/循环条件){
语句块/循环体
}
[/c]

其中表达式称为循环条件,语句块称为循环体。

while语句的意思是:先计算表达式的值,当值为真(非0)时, 执行循环体语句;执行完循环体语句,再次计算表达式的值,如果为真,继续执行循环体……这个过程会一直重复,直到表达式的值为假(0)才退出循环。其执行过程如下图所示:

while循环语句流程图
while循环语句流程图

while语句示例

用while语句计算1加到100的值,并通过串口监视器显示出来。

程序代码(可双击程序内容全选代码)

程序说明

1) 程序运行到while语句时,因为 i=1,所以i<=100 为真,于是Arduino将执行循环体(以上示例程序中第22行和第23行语句);执行结束后 i 的值变为 2,sum 的值变为 1。

2) 接下来Arduino会继续判断 i=100 是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i 的值变为 3,sum 的值变为3。

3) 重复执行步骤 2)。

4) 当循环进行到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成立,所以Arduino将出循环,不再执行循环体,转而执行while循环后面的代码,延迟五秒钟。