do-while循环
6.1 do-while 语法形式
在循环语句中 do while 语句的使用最少,它的语法如下:
do
语句;
while(表达式);
用{ }将do语句的循环体括起来,使之成为程序块。
do
{
语句1;
语句2;// do语句的循环体为复合语句
}
while(表达式);
do语句···先循环后判断:执行循环体之后进行判断
while语句···先判断后循环:执行循环体之前进行判断
while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环。
而do while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 后的判断表达式,表达式为真,就会进行下⼀次,表达式为假,则不再继续循环。
6.2 do while 循环的执行流程
在 do while 循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在 do while 语句中循环体是至少执行⼀次的,这是 do while 循环比较特殊的地方。
6.3 do while 循环的实例
练习 1:
在屏幕上打印 1~10 的值
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
}while(i<=10);
return 0;
}
运行结果:
一般 do while 使用在循环体至少被执行一次的情景下,所以使用的频率较少,但我们依然要熟练使用。
练习 2:
输⼊⼀个正整数,计算这个整数是⼏位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
参考代码如下:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int num = 0;
do
{
num++;
n = n / 10;
} while (n);
printf("%d\n", num);
return 0;
}
这里并非必须使用 do while 语句,但是这个代码就⽐较适合使用 do while 循环,因为 n 即使是 0,也是 1 位数,要统计位数的。