在C语言中,提供了while语句来进行循环控制。它的格式如下:
一、while(表达式) 循环语句;
该语句的执行流程是:
(1)步骤一:判断小括号中的表达式的值,如果表达式的值为真,则执行while后面的循环语句;如果表达式的值为假,则不执行循环语句,而且结束while语句的执行;
(2)步骤二:如果表达式的值为真,执行完循环语句之后,回到步骤一继续循环判断执行;
如果表达式的值为真,那么,就一直执行循环语句。直到表达式的值为假的时候,才结束while()语句。如下是一个程序测试例子:
include <studio.h>
int main(void){
int i = 3;
while (i--)
printf("i = %d\n",i);
return 0;
}
程序运行的结果如下:
i=2
i=1
i=0
定义 int 类型变量 i,它的值为3;
执行while(i--),那么,i--表达式的值是i变化之前的值,所以,i--表达式的值为3,此时,表达式的值为非0,所以,为真,执行循环语句。所以,执行循环体的循环语句:
printf("i = %d\n", i); //循环体执行的语句
输出i的值;由于已经执行了i--,所以,i变量的值为2,所以,输出 i = 2;
继续执行while(i--),此时,i的值为2,那么,i--表达式的值为i变化之前的值,所以,i--表达式的值为2;是非0值,所以,为真,继续执行循环语句,输出i变量的值;由于执行了i--,所以,i变量的值为1,所以,输出i = 1;
继续执行while(i--),此时,i的值为1,那么,i--表达式的值为i变化之前的值,所以,i--表达式的值为1;是非0值,所以,为真,继续执行循环语句,输出i变量的值;由于执行了i--,所以,i变量的值为0,所以,输出i = 0;
继续执行while(i--),此时,i的值为0,那么,i--表达式的值为i变化之前的值,所以,i--表达式的值为0;是0值,所以,为“假”;此时,while(表达式)中的表达式的值为“假”,那么,就结束while循环的执行。
所以,就不执行循环语句,而且结束while循环语句。
那么,我们可以总结,对于while循环语句,如果while(表达式)中的表达式值为真,那么,就执行循环语句。如果表达式的值为假,就不执行循环语句,而且结束while语句的执行。
二、while(表达式){循环语句;…}
如果要想循环执行多条语句,可以使用大括号{}把多条语句包含起来,作为while循环的执行体,那么,就可以循环执行多条语句,定义的格式如下:
while(表达式)
{
循环语句1;
循环语句2;
…
循环语句N;
}
那么,就有:
如果表达式的值为真,就执行大括号{}定义的循环体,执行循环体中定义的循环语句;执行完循环体中的循环语句之后,继续判断表达式的值。如果表达式的值为假,就不执行循环体中的循环语句,而且结束while语句的执行。
三、while循环注意事项
while (条件) { 满足条件就执行 }
因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了。