你是否清楚c语言的循环结构分几种?
你是否能够轻松运用循环语句?
你是否理解break、continue、goto语句?
如果不是的话,就让本鱼来教你吧!
目录
1.while语句
c语言提供了三种循环语句,while便是其一。
上一篇文章介绍了 if 语句,这里的while语句其实就类似于将 if 语句进行多次执行,直到不再满足条件。
1.1 while语句基本格式
while语句基本格式如下:
初始化;
while(判断条件)
{
执行语句;
调整;
}
假如我们计算1+2+3+4+5的和 :
在while的()里面,既可以是表达式,也可以是判断语句,还可以是常量 。
实际上while执行与否取决于()里面的东西返回的是真是假,对于c语言,0是假,非0是真。
那么我在此介绍一下一个在刷题网站非常重要的知识点:依靠scanf的返回值实现连续输入
先介绍一下scanf的返回值吧
1.2 scanf的返回值
scanf()的返回值是一个整数,表示成功读取的变量个数。
如:
注意:不要将scanf的参数个数与读取个数混为一谈,其参数个数比读取个数要多一个 ——“ ”这个整体。
如果scanf没有读到任何项,或者匹配失败,则返回0。如果在成功读取任何数据之前,发生读取错误或者读取到了文件的结尾,则返回常量EOF(EOF的值为-1)。
所以我们就可以将其写进循环了:
注:vs环境下需要按三次Ctrl+z才能结束输入。
这样,一个由输入决定循环次数的模型就写好啦。
2.for语句
2.1 for语句的基本格式
for语句的基本格式如下:
for(初始化;判断条件;调整)
{
执行语句;
}
for语句与while语句最大的不同在于:for语句的初始化、判断条件、调整是集中的 ,而while语句是分散的,这就导致本鱼更喜欢用for语句!
那么还是以示例(计算1+2+3+4+5)说话:
3.do while语句
3.1do while语句的基本格式
初始化;
do{
执行语句;
调整;
}while(判断条件);
敲重点:while后面要有“;”!
do while与while语句相类似 ,区别在于do while不管三七二十一,至少执行一次循环,
这就适用于计算一个数字的位数,0 也有一位这种特殊情况就被考虑进去了。
代码如下:
若是写成while循环则需要加上判断a是否等于0。
4.break与continue
4.1 基本作用
两者出现在循环中(除switch里面的break)
break的作用是永久的终止循环,只要break被执行,就会跳出当前循环(不能一次性跳出多层),继续往后执行。(break以后再也不干)
continue的作用是跳过这一次循环后面的语句,继续下一次循环。(continue以后休息一下接着干)
4.2两者在while循环中的运用
4.2.1执行流程
4.2.2运行程序
可以看到输到4以后程序结束
换成continue以后由于一直跳过i++(调整语句);导致i一直是5,就会死循环。
4.3两者在for循环中的运用
4.2.1执行流程
一定要注意,与while不同的是break以后还会进行调整!
4.2.2运行程序
for语句在break以后的输出结果与while相同!
但是for语句在continue以后还会回到调整语句,可以看到结果只是少了5!
4.4两者在do while循环中的运用
4.4.1执行流程
do while中的break和continue实质上与while相同
4.4.2运行程序
break的运行结果和while,for一样 。
continue运行结果和while一样(总而言之,for比较特殊)
5.goto语句
5.1goto语句基本格式
这个语句大家应该比较陌生,其实goto与字面意思相同,就是实现跳转的作用,相较于break来说,goto可以一次性跳出多重循环,更加快捷方便!
举个例子:
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
}
error:
语句;
注意error后面是“:”,goto error后面是“;”
5.2goto语句的缺点
goto语句若使用不当,就会导致执行顺序在函数内部随意跳转,打乱程序的执行流程,所以我们尽量不要使用goto语句哦 !
————————————————————
好啦,循环语句的介绍就到此为止啦
感谢各位友友们的观看!
鱼鱼有哪些地方做的不好,还请友友们献出你们宝贵的建议!