和上一篇介绍的do语句不同,在循环体执行前对循环的继续条件进行判断的是while语句。输入一个整数值,显示出从它开始递减到0的每一个整数的程序代码如下:

#include<stdio.h>
int main()
{
	int no;
	printf("请输入一个正整数:");
	scanf("%d", &no);
	while (no <= 0)
	{
		printf("%d", no);
		no--;
	}
	printf("\n");
	return 0;
}

C语言循环控制(while语句)_while语句

这里是为了实现递减而使用了while语句,while语句会在表达式的值达到0之前循环执行其中的语句,我们以no的值为0为例,结合下面的图给大家分析一下程序的运行过程:

C语言循环控制(while语句)_运算符_02

首先对控制表达式no>=0的值进行判断,结果为1(ture),不为0(false),所以循环体中的语句会被执行,先通过printf("%d",no);语句在屏幕上显示出一个5 (5后面会跟着一个空格)。接下来执行no--语句,由于后置递减运算符的作用,no的值递减为4。这样循环体就执行结束了,程序会再次回到控制表达式,然后再对循环是否继续执行进行判断,由于判断表达式no>=0仍然成立,因此循环体会被执行,于是屏幕上会显示4,并且no的值递减为3.像这样,通过循环的反复执行,no的值会不断递减,并在屏幕上显示相应的数字。当no的值为0的时候,在屏幕上显示出0,接下来通过后置递减运算符使no的值递减为-1。这之后判断循环是否继续执行的控制表达式no>=0就不再成立了,循环结束。需要注意的是,虽然最后显示在屏幕上的no的值是0,但其实while语句结束的时候,它的值已经变成了-1。最初对控制表达式进行判断时,如果判断结果为0,则循环体一次都不会执行。因此,如果no的值是负的话,while语句就会被跳过。