do-while语句的特点是首先无条件地执行一次循环体,然后判断条件是否成立,即“先执行,后判断”,因此do-while语句的循环体至少会被执行一次。
1.do-while语句的一般形式
do
{
语句
}
while(表达式);
(1)“do”是C语言的关键字,在此语句中必须和“while”一起使用。
(2)do-while语句由do关键字开始,在“while(表达式)”后必须有分号,圆括号中的表达式是循环条件,语句是循环体。
例如:
实现1~100求和的do-while语句为:
i=1;sum=0;
do
{
sum=sum+i;
i++;
}
while(i<=100);
2.do-while语句的执行过程
do-while语句的执行过程如图4.7所示:
Step1:执行循环体中的语句。
Step2:求解“表达式”的值并判断。若值为非0(真),执行Step1,否则执行Step3。
Step3:结束循环,执行do-while语句下面的语句。
图4.7 do-while语句的执行过程
从do-while语句的执行过程可以看出,即使第一次求解作为循环条件的表达式的值为假,do-while语句的循环体语句也会执行一次。
2.do-while语句的使用
do-while语句在使用上与while语句十分相似,二者的区别在于while语句是先判断后执行,而do-while语句是先执行后判断。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int n,sum=0;
5 n=1;
6 do
7 {
8 sum+=n;
9 n++;(www.xing528.com)
10 }while(n<=100);
11 printf("%d\n",sum);
12 return 0;
13 }
程序结果如图4.8所示:
图4.8 例4.5程序结果图
【例题中关键问题说明】
(1)sum作为存放累加结果的变量,使用前要清零。
(2)n是do-while语句的循环变量,需要在do-while语句前使用语句“n=1;”对n赋初值。
(3)“while(n<=100)”后的分号注意不要漏掉。
(4)程序中的“n++;”是在程序的执行过程中使循环条件趋向不成立的语句,应该作为循环体中的内容,所以需要和反复执行的语句“sum+=n;”放在一对花括号内组成一条复合语句。
【例4.6】用while语句求n!。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i,n,s=1;
5 scanf("%d",&n);
6 i=1;
7 do
8 {
9 s=s*i;
10 i++;
11 }while(i<=n);
12 printf("s=%d\n",s);
13 return 0;
14 }
程序结果如图4.9所示:
图4.9 例4.6程序结果图
【例题中关键问题说明】
(1)变量i是本程序中的循环变量,需要在do-while语句前使用“i=1;”语句对i赋初值,循环结束时i的值为“n+1”。
(2)s作为存放结果的变量,使用前要置1,因为s是定义的整型变量,存储数值的范围有限,若n的值较大,将不能输出正确的结果,要解决这个问题,可以将s定义为存储数值范围较大的类型的变量。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。