一:do while
1.1语法介绍
在循环语句中
do while
语句的使用最少,它的语法如下:
do
语句;
while(表达式);
while
和
for
这两种循环都是先判断,条件如果满足就进⼊循环,执行循环语句,如果不满足就跳
出循环
而
do while
循环则是先直接进⼊循环体,执行循环语句,然后再执行
while
后的判断表达式,表
达式为真,就会进行下⼀次,表达式为假,则不再继续循环。
1.2 do while循环的执行流程
在
do while
循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,判断表达式的
结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。
所以在
do while
语句中循环体是至少执行⼀次的,这是
do while
循环比较特殊的地方。
1.3 do while循环的实例
在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
}while(i<=10);
return 0;
}
⼀般
do while
使用在循环体至少被执行⼀次的场景下,所以较少⼀些。
1.4练习
输⼊⼀个正整数,计算这个整数是⼏位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int cnt = 0;
do
{
cnt++;
n = n / 10;
} while (n);
printf("%d\n", cnt);
return 0;
}
这里并非必须使用
do while
语句,但是这个代码就比较适合使用
do while
循环,因为n即使是
0,也是1位数,要统计位数的。
二:goto语句
C语言提供了⼀种非常特别的语法,就是
goto
语句和跳转标号,
goto
语句可以实现在同⼀个函数内跳转到设置好的标号处。
例如:
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
标号名字可以任意取,标号也可以用放在上面,但是这样就形成了死循环。
goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是 goto
语句也不是一无是处,在多层循环的代码中,如果想快速跳出使用goto
就非常的方便了。
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
}
error:
//...
本来
for
循环想提前退出得使用
break
,一个
break
只能跳出一层
for
循环,如果3层循环嵌套
就得使用3个
break
才能跳出循环,所以在这种情况下我们使用goto
好啦,本期的讲解到这里就结束了,还是老规矩哦!下一篇我们讲解循环中break continue的作用。