C语言_流程控制_循环 笔记

循环

for

1.格式

  for(1;2;3)

  {

       语句A;

       语句B;

  }

2. 执行流程(以一个例子来说明,序号代表一个语句)

#include<stdio.h>

int  main(void)

{

         int  i,sum;

         sum=0;

       

          for(i=1;i<=3;++i)

          {

                   ④sum=sum+i;

          }

         ⑤ printf("%d",sum);

          

          return  0;

}

for循环中的执行顺序:

⑴先执行①,再执行②。如果②成立,执行④,最后执行③。一次循环结束。

⑵先执行②(第二次循环不执行①),再执行②。如果②成立,执行④,最后执行③。第二次循环结束。

……直到②不成立,则循环结束。继续执行⑤。

3.有穷性

循环必须具有有穷性,不能无限循环

4.范围问题

for默认只能控制一个语句,控制多个需用大括号括起来(if一样)

5.强制数据类型转换

①格式: (数据类型)(表达式\也可以是某个量)

②举例:

//将表达式的值(浮点数型)强制转换为整型

float  i;

(int) (i*0.9);

//将整型变量强制转换成浮点型

 int   i ;

 (float) (i);

③功能

将表达式的值强制转换为前面的数据类型

6.试数技巧

①不要去想程序的目的,把自己当做计算机,一步步去试

②不要省略步骤

③要写整齐,有逻辑性

7.浮点型的存错所带来的问题

①原因

floatfouble都不能保证准确地存储一个值(并非所有值都不能准确存储,只是不能保证每一个都准确存储)

②举例

有一个浮点数x,如何判断x的值是否等于零

 if (x0.000001的绝对值<=0.000001)

      等于零

 else

      不等于零

②注意

循环中更新(自加或自减)的变量不能定义为浮点型,因为浮点型是一个非准确存储

7.forif嵌套的习题

注意在定义变量时,一般用sum表示和,用cnt表示个数

8.多个for嵌套的流程【重难点】

(为方便表示,在此数字代表表达式,称123所在循环为大循环,称456所在循环为小循环)

  for(1;2;3)

          for(4;5;6)

          语句A;

  语句B;

执行顺序:

先执行1,再执行2,如果成立,则执行4(小循环开始)

执行完4后,执行5,若成立则执行语句A,然后执行6……直到2不成立,退出

退出小循环后执行3,接着执行2,若成立则继续进入第二个循环(步骤同上,再次退出小循环后继续执行3)……直到2不成立,退出大循环,所以循环结束,执行语句B

while

1.格式

  while(表达式)

       语句;

2.执行顺序

  先判断表达式,若为真,执行语句。然后继续判断表达式直到表达式不成立,退出循环

3.forwhile的比较

forwhile可以相互转换,但for的逻辑性更强

for(1;2;3)

{

    A;

}

等价于

1;

while(2)

{

    A;

    3;

}

do......while

1.格式

  do

  {

     语句;

  } while(表达式);

2.流程

执行语句

判断表达式,若成立则继续执行语句,不成立则退出循环(无论表达式是否成立,语句都至少要执行一次)

3.whilefor的比较

do......while......不等价于whilefor。因为若表达式不成立,whilefor都不执行语句,而do......while要执行一次

猜你喜欢

转载自www.cnblogs.com/qinenxi/p/10994982.html
今日推荐