说明
while循环将会连续地无限地循环,直到圆括号()中的表达式变为假。被测试的表达式变量必须被改变,否则while循环将永远不会中止。可以在代码改变测试变量,比如让该变量递增,或者通过外部条件改变测试变量,比如将一个传感器的读数赋值给测试变量。
结构
[c gutter=”false”]
while(表达式/循环条件){
语句块/循环体
}
[/c]
其中表达式称为循环条件,语句块称为循环体。
while语句的意思是:先计算表达式的值,当值为真(非0)时, 执行循环体语句;执行完循环体语句,再次计算表达式的值,如果为真,继续执行循环体……这个过程会一直重复,直到表达式的值为假(0)才退出循环。其执行过程如下图所示:
while语句示例
用while语句计算1加到100的值,并通过串口监视器显示出来。
程序代码(可双击程序内容全选代码)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
/* while语句示例程序 v1.0 Created 2016 by 太极创客 www.taichi-maker.com 说明: 此程序旨在演示如何使用while语句对Arduino控制器进行编程。 This example code is in the public domain. */ void setup() { // 初始化串口通讯 Serial.begin(9600); } void loop() { int i=1, sum=0; while(i<=100){ //判断i是否小于等于零 sum+=i; //当i小于等于零时, i++; //执行循环体中的语句。 } Serial.print ("sum = "); //通过串口监视器输出 Serial.println (sum); //while循环结束后的sum值 delay (5000); // 延迟5秒钟 } |
程序说明
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循环后面的代码,延迟五秒钟。