有些情况下,不论条件是否满足,循环过程必须至少执行一次,这时可以采用do...while语句。就像如图7.4所示登录账号一样,需要先输入密码和账户名,后进行判断;如果密码始终不正确,则循环要求用户输入密码。 图7.4 登录界面 而do...while语句的特点就是先执行循环体语句的内容,然后判断循环条件是否成立。do...while语句一般形式为: do 循环体语句 while(表达式); do...while语句的执行流程图如图7.5所示。 图7.5do...while语句的执行流程图 do...while语句首先执行一次循环体语句中的内容,然后判断表达式,当表达式的值为真时,返回重新执行循环体语句。执行循环,直到表达式的判断结果为假时为止,此时循环结束。 例如下面代码:

01 		do
02 	{
03 		iNumber++;	
04 		}while(iNumber<100);

在这几行代码中,首先执行iNumber++的操作,也就是说,不管iNumber是否小于100都会执行一次循环体中的内容。然后判断while后括号中的内容,如果iNumber小于100,则再次执行循环语句块中的内容。 注意:在使用do...while语句时,循环条件要放在while关键字后面的括号中,最后必须加上一个分号,这是许多初学者容易忘记的。

实例 模拟一辆客车的承载量

一辆客车只能承载25人,如果超过25人,司机就会拒绝载客。具体代码如下:

01 	#include<stdio.h>		/*包含头文件*/
02 	int main()                                      		/*主函数main*/
03 	{
04 		intnum=0;                                  		/*定义人数变量*/
05 		scanf("%d",&num);              		/*输入人数*/
06 	 do		/*进入循环*/
07 	     {
08 	num++;                                 		/*人数累加1*/
09 	printf("还能承载 %d 人,\n",26-num);/*所剩座位*/
10 	      }while(num<=25);                              	/*检验条件*/
11 	printf("座位已满,不能再承载了。\n");/*输出信息*/
12 	return 0;                                     	/*程序结束*/
13 	}

运行程序,显示结果如图7.6所示。
图7.6 客车承载数运行图 从该实例代码和运行结果可以看出: (1)定义变量num用来保存当前车辆的载客量。do关键字之后是循环语句,语句块中进行累加1和打印出座位剩余情况等操作。 (2)语句块下方是while语句检验条件,如果检验为真,则继续执行上面的语句块操作;为假时,程序执行下面的代码。在循环操作完成之后,将执行程序的第12行代码。