学科分类
目录
C语言

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的条件。

image-20200520115513083脚下留心:语句后的分号”;”

很多人在编程时会经常性的在结尾加上分号,在使用while循环语句时,一定要记得不能在()后面加分号,这样就造成了循环条件与循环体的分离。如下面的代码:

while(1);
{
  printf("无限循环");
}

像这样的代码在while()循环条件后加了分号,这就会造成无限循环的错误,“while(1);”后边的语句不会执行,而且这种小错误在排查时很难发现,读者在编写程序时要留心。*

点击此处
隐藏目录