do…while语句是另一种循环结构,它和while语句的不同点在于,do…while语句先执行循环,然后判断循环条件是否成立。其一般形式如下:
do
循环语句
while(表达式);
对于do…while语句做以下几点说明:
- 在C语言中do…while语句被称为直到型循环,它的执行特点是:先执行,后判断。
- do…while语句执行过程:
(1)先执行一次循环语句,然后判断表达式的值。
(2)若表达式的值为非0,则返回(1);如果表达式的值为0,则直接退出循环语句,执行下一条语句。
示例:从键盘输入一个正整数n,计算该数的各位数之和并输出。例如,输入数是4569,则计算4+5+6+9=24并输出。
(1)求出输入正整数各位数字之和,首先要求出各位上的数字。
(2)使用do…while语句进行循环操作,循环体为:
- n对10求余,得出个位上的数字。如:4569%10=9
- n对10求商,使用n缩小一位,然后求高一位上面的数字,再赋值给n。
- 每求出一个数位上的数字,使用s求和。
如:4569/10=456,n=456。
(3)当n>0,再次执行循环体,直到n<0。
#include <stdio.h>
void main()
{
int n, s = 0;
printf("输入一个正整数:");
scanf("%d", &n);
do
{
s += n % 10;
n /= 10;
} while (n > 0);
printf("各位数之和是:%d\n", s);
}
程序运行的结果为:
输入一个正整数:4569
各位数之和是:24
示例:某厂今年产量为100万元,假定该厂的产值每年增长10%,问几年后产值可以翻一番?用do…while语句计算。
#include <stdio.h>
void main()
{
int year = 0;
float sum = 100;
//do…while循环
do
{
sum = sum * (1 + 10.0 / 100);
year += 1;
} while (sum < 200); /*如果sum的值小于100,执行do语句块*/
printf("%d\n", year); /*输出最后的结果*/
}
运行结果为:
8
do…while语句在表达式后面有一个分号“; ”,书写时一定要谨记。
do…while语句本身也是可以嵌套的,一般形式如下:
do
{
…
do
{
…
}while();
}while();
评论前必须登录!
注册