C语言循环结构

循环的概念:

什么是循环:需要重复执行的代码叫作循环

类型:①无限循环(死循环),程序设计中尽量避免(程序中的无限循环必须可控)

②有限循环,限定循环次数或循环的条件

循环构成:

  1. 循环体
  2. 循环条件

循环结构的实现:

  1. 当型循环

     whlie

     特点:先判断,后执行,循环及循环语句有可能一次也不执行

     while死循环:while(1)

语法: while(循环条件)

            {

    循环语句;

}           

      说明:①循环条件的返回值必须是布尔类型,在C语言中布尔类型为真用“非0”表示,布尔类型为假用0表示。

            ②花括号{}包起来的内容,整体称之为循环体

            ③我们要在循环体中控制循环条件的变化,否则就是死循环

执行过程:

案例:

for循环:

语法:for(表达式1;表达式2;表达式3)

      {

循环语句体

          }           

表达式1:是循环变量,需要赋初始值,循环变量可以是列表,多个循环变量使用逗号分隔

表达式2:循环条件,限制循环次数

表达式3:改变循环的条件,支持列表,可以使用赋值表达式

说明:()中可以只保留两个分号,eg:for(-;-;)

流程图:    

   案例:for循环求1~100之间的偶数和

// while实现

7 void while_test()

8 {

9 int sum = 0;

10 int i = 1;

11

12 while(i <= 100)

13 {

14 if(i % 2 == 0)

15 {

16 sum += i;

17 }

18 

19 i++;

20 }

21

22 printf("while实现:1100之间的偶数和:%d\n",sum);

23 }

24

25 // for实现

26 void for_test()

27 {

28 

29 int sum = 0;

30

31 for(int i = 1;i <= 100;i++) // 死循环表示:while(1)for(;;)32 {

33 if(i % 2 == 0)

34 {

35 sum += i;

36 }

37 }

38

39 printf("for实现:1100之间的偶数和:%d\n",sum);

40 }

41

42

43 int main()

44 {

45 while_test();

46 for_test();

47

48 return 0;

49 }

   总结:(1)for语句使用语法规则上,降低/避免因为忘记循环条件更新操作,而引起的产生无限循环的几率

         (2)死循环表示:for(表达式1;表达式3)/for(;;)

         (3)应用场合:for语句往往用用于循环次数实现可以确定的场景

循环实现的三要素:循环变量初始化;循环条件;循环的变量的更新

循环的嵌套:

在前一个循环的内部又存在一个完整的循环结构

补充:什么是素数:素数也被称作质数。只能被1和它自身整除的数就叫做素数

案例:

  1. 直到型循环

①do while:

特点:先执行,在判断,循环语句至少执行一次

语法:do

      {

      循环体;

}while(循环条件);

      执行过程:    

案例:do...while 求1~100之间奇数的累加

  

 ②goto

  语法:goto 标签(label)

  标签:表明目标代码的的位置,是一个不加双引号的字符串

  案例:

注意;goto只能在同一个函数中跳转,goto会破坏掉代码的结构,同时会降低代码的可读性,在实际开发中,不建议使用

循环结构的典型应用场景

  1. 求累加和:eg:1+2+3+4+..+100的和
  2. 求累乘:eg:1*2*3*4*..*100的积
  3. 求均值:eg:(1+2+3+4+..+100)/100的值
  4. 求极(最大)值:eg:12、34、55、2、66中的最大值或最小值
  5. 元素遍历:常用于数组元素的遍历,eg:从[1、2、3、4、5、6]获取每一个元素
  6. ....

 基础算法模型

   ①累加和

       定义一个变量(sum),并赋初始值为0

       用该变量累加(+=)每一个数据项(i)

       当访问完每一个数据项,此时该变量的取值就是累加和的结果   

②累乘

   定义一个变量,并赋初始值为1;

   用该变量累乘(*=)每一个数据项;

当访问完每一个数据项,此时该变量的取值就是累乘的结果

③极值【知识点:数组】

   定义一个变量,并赋初始值为第一个数据项

   从第二个数据项开始,一次性与该变量进行比较,如果大于/小于该变量,则将当前数据项的数据赋值给该变量

   当访问完没一个数据项,此时该变量的取值就是求极值的结果

Break:

功能:(1)用于switch结构中,用来跳出switch语句,如果case没有break,可能会产生case穿透

(2)用在循环中(while、do...while、for),提前结束循环,也就是结束整个循环

案例:需求:小马哥参与考试,及格跳出循环,否则一直考

需求:输出1~100以内的偶数,只输出前10个

continue:

功能:cuntinue语句不会结束整个循环,而是跳过当前循环,进入下一循环

案例:需求:求1~100之内的偶数和

跳出多层循环:

跳出多层循环不能使用break和continue的,它们只能跳出单层循环。所以需要我们定义标志位跳出多层循环

案例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值