2018-09-04循环

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 跨切循环层的次数

  • 一般外循环控制行数内循环控制列数
    来几个练习
    正三角,尖尖朝上
    倒三角,尖尖朝下

你可能感兴趣的:(2018-09-04循环)