C语言中的循环
其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。
给定的条件称为"循环条件",反复执行的程序段称为"循环体"
- 循环分为三种循环
while循环,do...while循环,for循环.三种都是能实现共同的功能,不同的方法有不同的用法每种都需要掌握.

)int a = 1; while(a > 3){ printf("我是a"); a++; }(
)这段代码就是证明了我的说法,我一开始定义一个a值为1,然后走到while循环()里仅需判断a是否大于3,不大于就开始执行输出语句,然后a++,a就变成了2,继续走到while循环的()进行判断2还是不大于3继续执行输出语句,直到条件不成立了这个循环也就结束了
执行流程:1.首先会判定"循环控制条件"是否为真, 如果为假直接跳到循环语句后面
2.如果"循环控制条件"为真, 执行一次循环体, 然后再次判断"循环控制条件"是否为真, 为真继续执行循环体,为假跳出循环
3.重复以上操作, 直到"循环控制条件"为假为止
while循环注意点
- 任何数值都有真假性--> (
) while (1) { // 死循环 printf("发射子弹~哔哔哔哔\n"); // 没有能够让循环结束的语句 }(
) - 上面就是一个死循环,while里面的判断是1,表示永远为真,然后就会一直执行里面的语句不会停止
- 当while后面只有一条语句时,while后面的大括号可以省略
()int a = 1;while(a < 3)printf("我是a");(
)
如果while省略了大括号, 那么后面不能定义变量
C语言中分号(;)也是一条语句, 称之为空语句
do...while循环
- 先执行程序在进行判断,一般while能做到的do...while也能做到,do...while能做到的,while也能做到;
do{
printf("我是先执行的")
}while(判断的条件是否要进行循环);
这就是do...while语句的基本结构
do-while循环执行流程
1.首先不管while中的条件是否成立, 都会执行一次"循环体"
2.执行完一次循环体,接着再次判断while中的条件是否为真, 为真继续执行循环体,为假跳出循环
3.重复以上操作, 直到"循环控制条件"为假为止
while和dowhile应用场景
绝大多数情况下while和dowhile可以互换, 所以能用while就用while
无论如何都需要先执行一次循环体的情况, 才使用dowhile
do while 曾一度提议废除,但是他在输入性检查方面还是有点用的
for循环
- for循环是所有循环里面用的最多的,也是最好用的一个,企业开发中一般能用for循环就尽量用for循环
()for(初始化表达式;循环条件表达式;循环后的操作表达式){循环体中的语句;}(
)
例如:for(int a = 1;a < 3;a ++){printf("a");}初始化一个表达式a等于1,然后进行循环条件判断,1小于3是对的然后进行输出,输出完后执行循环后的表达式,然后在进行判断a是否小于3如果小于就继续执行,直到哪次条件不满足了就不会输出了
- for循环执行流程
- 首先执行"初始化表达式",而且在整个循环过程中,只会执行一次初始化表达式
接着判断"循环条件表达式"是否为真,为真执行循环体中的语句
循环体执行完毕后,接下来会执行"循环后的操作表达式",然后再次判断条件是否为真,为真继续执行循环体,为假跳出循环
重复上述过程,直到条件不成立就结束for循环
- 最简单的死循环for(;;);
for循环的优点在于节省空间
四大跳转
C语言中一共有四种跳转 分别是return、break、continue、goto
- break:
立即跳出switch语句或循环语句 - 应用场景:
switch
循环结构 - break离开应用范围,存在是没有意义的
- 在多层循环中,一个break语句只向外跳一层
- break下面不可以有语句,因为执行不到
- continue
直接结束本轮循环,进入下一轮循环 - 应用场景:
循环结构
和break一样离开应用范围,存在是没有意义的
- goto这个要分开来讲争议很多
goto
这是一个不太值得探讨的话题,goto 会破坏结构化程序设计流程,它将使程序层次不清,且不易读,所以慎用
goto 语句,仅能在本函数内实现跳转,不能实现跨函数跳转(短跳转)。但是他在跳出多重循环的时候效率还是蛮高的
return
结束当前函数,将结果返回给调用者
循环结构的循环体中存在其他的循环结构,我们称之为循环嵌套
注意: 一般循环嵌套不超过三层
外循环执行的次数 * 内循环执行的次数就是 内循环总共执行的次数
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数
- 一般外循环控制行数内循环控制列数
来几个练习
正三角,尖尖朝上
倒三角,尖尖朝下
网友评论