while循环
while循环语句和3.3小节讲到的if条件判断语句有些相似,都是根据判断条件来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}中的语句就会一直执行。while循环语句的具体语法格式如下:
while(循环条件)
{
执行语句
}
在上面的语法格式中,{}中的执行语句被称作循环体,循环体是否执行取决于循环条件,当循环条件的值非0时,循环体就会被执行。循环体执行完毕时会继续判断循环条件,直到循环条件的值为0时,整个循环过程才会结束。
while循环的执行流程如图1所示。
图1 while循环的流程图
下面通过一个案例演示while循环打印出1~10之间的整数,案例的具体实现如例1所示。
例1 while.c
1 #include <stdio.h>
2 int main()
3 {
4 int num = 1; //定义变量num,初始值为1
5 while(num <= 10) //循环条件
6 {
7 printf("num = %d\n", num); //条件成立,打印num的值
8 num++; //num,进行自增
9 }
10 return 0;
11 }
例1的运行结果如图2所示。
图2 例1运行结果
在例1中,第4行代码定义变量num并初始化其值为1;第5~9行代码使用while循环语句判断num<=10是否成立,如果成立则调用printf()函数输出num的值,并让num进行自增。循环体中的语句执行完成后,判断while循环条件是否成立,如果成立继续执行循环体中的语句,直到最后while循环条件不成立时结束循环。由图2所示程序成功输出了1~10之间整数。
需要注意的是,例1中的第8行代码用于在每次循环时改变变量num的值,直到循环条件不成立,如果没有这行代码,整个循环会进入无限循环的状态,永远不会结束,因为num的值一直都会是1,永远满足num<=10的条件。
脚下留心:语句后的分号”;”
很多人在编程时会经常性的在结尾加上分号,在使用while循环语句时,一定要记得不能在()后面加分号,这样就造成了循环条件与循环体的分离。如下面的代码:
while(1);
{
printf("无限循环");
}
像这样的代码在while()循环条件后加了分号,这就会造成无限循环的错误,“while(1);”后边的语句不会执行,而且这种小错误在排查时很难发现,读者在编写程序时要留心。*