
do <语句> while (表达式);
(1) 执行一次循环体语句;
(2) 计算表达式的值,若为非0再继续执行循环体,否则结束循环。
特点:是先执行循环体后进行循环条件的判断。与for和while循环相反。
for和 while语句是先判断循环条件再执行循环体,而do循环是先执行循环体而后判断。
当循环次数固定时,通常采用for循环较方便。当需要先执行后判断时选择do循环,否则选择for或while循环。
在任一种循环的循环体内都可以使用break语句, break语句也能够中止switch语句的执行过程。
(1) do s+=i++; while (s<10);
(2) do {scanf("%d",&x); s*=x;} while (--n);
程序1:
#include
#define NM 10
void main() {
int x,n=1,c=0;
do {
scanf("%d",&x);
if(x>=30 && x<=60) c++;
} while(n++<NM);
printf("c=%d\n",c);
}
根据从键盘上输入的NM个整数,统计出30至60内的整数个数并输出。
程序2:
#include
void main()
{
int i,x;
printf("请输入一个整数,若小于3则重输: ");
do scanf("%d",&x); while(x<=2);
i=2;
do{
while(x%i==0) {printf("%d ",i); x/=i;}
i++;
} while(i<=x);
printf("\n");
} // x=24,2 2 2 3;50,2 5 5;37,37
程序功能:把一个大于等于3的整数分解为质因数的乘积。