语法形式
do{
语句;
}while( 表达式)
do while循环是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。
所以do while语句中循环体是至少执行一次的,这是do while循环比较特殊的地方
do while循环的实例
在屏幕上打印1~10的值
do while语句实现
int main() {
int i = 1;
do {
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
while语句实现
int main() {
int i = 1;
while (i<=10) {
printf("%d ", i);
i++;
}
return 0;
}
下面来看一个典型的do while循环的例子 题目:输入一个整数,计算它是几位数
int main() {
int n;
int count=0;
scanf("%d", &n);
do {
n /= 10;//去掉个位
count++;
} while (n);
printf("%d", count);
return 0;
}
刚学do while 循环可能感觉他没什么用,大部分代码都能用while或for循环实现,但是这一个例子看似没什么特别,但是如果n=0时就体现了do while循环会首先执行一次循环体的特点,n=0时执行循环体保证它是一位数。所以在特定的条件下用do while循环也是能简化我们的代码。
注:这⾥并非必须使⽤ do while 语句,但是这个代码就比较合适使用 do while 循环,因为n即使是0,也是1位数,要统计位数的。
do while和while循环的对比
-
while循环执行时只有当满足条件时才会进入循环,进入循环后,执行完循环体内全部语句直到条件不满足时,再跳出循环。
-
do-while循环将先运行一次,在经过第一次do循环后,执行完一次后检查条件表达式的值是否成立,其值为不成立时才会退出循环。
注:用while循环和do while循环完成同样的任务时,只有第一次条件不满足时,产生的结果不同,否则他们俩的结果是一样的。可对比打印1~10的例子,如果n给的值是11,则两个代码的效果是不同的