`
比深蓝还要蓝
  • 浏览: 14795 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

C语言:第六课

 
阅读更多
一、循环控制语句控制一个代码块多次执行,直到某个条件满足。重复做某件事的现象称为循环。重复执行的程序段称为循环体。有两种形式:当型循环和直到型循环。如图1。
图1:

while型循环和for循环属于当型循环;do_while型循环属于直到型循环。

 1、当型循环:首先判断循环控制表达式是否为“真”,若为“真”,则反复执行循环体。若为“假”则结束循环。

 2、直到型循环:首先执行循环体,然后才判断循环控制表达式,若为“假”,则反复执行循环体,直到循环控制表达式为“真”时结束循环。

二、while型循环的语法形式为:while (表达式) {循环体语句}
  表达式是控制循环的条件,它可以是任何类型的表达式。
  特点是:先判断,后执行。若表达式一开始就为“假”,则循环一次也不执行。

 1、while语句的循环体中必须出现使循环趋于结束的语句,否则会出现“死循环”。这类使循环趋于结束的变量,称为“循环控制变量”或“循环变量”。(在控制台,要结束无限循环,按Ctrl+c。)

 2、注意循环体中语句顺序也很重要。

三、do_while循环的语法形式:do {循环体语句} while (表达式)
  表达式是任意表达式,是控制循环的条件。
  特点:先执行,后判断,因此,循环体至少执行一次。循环体会重复执行,直到表达式为“假”才退出循环。

四、for循环语法形式:
   for (表达式1;表达式2;表达式3)
   {循环体语句;}


  功能:首先计算表达式1的值,然后检测表达式2的值,若其值为“真”,则执行循环体语句,执行完毕后,再计算表达式3。然后再测试表达式2的值是否为“真”,若为“真”,继续执行循环体语句,……若为“假”,则终止循环。

  说明:表达式1通常为循环变量赋初值的表达式;表达式2是控制循环的表达式;表达式3通常是心迹循环变量值的表达式。

五、break语句和continue语句:

  1、break语句用于终止循环的执行;continue语句用来结束本次循环,而不是结束整个循环,并开始下一次循环。

  2、continue语句只能出现在循环语句的循环体中;而break语句既可以出现在循环语句中,也可以出现在switch语句中。

  3、若执行while或do_while语句中的continue语句,则跳过循环体中continue语句后面的语句,直接转去判别下次循环控制条件;若continue语句出现在for语句中,则执行continue语句就是跳过循环体中continue语句后面的语句,转而执行for语句的表达式3。

六、几种循环的比较:

  1、三种循环可以相互替代。

  2、在实际应用中,for语句多用于循环次数明确的问题,而无法确定循环次数的问题采用while语句或do_while语句比较自然。do_while语句更适合于第一次循环肯定执行的场合。

  3、do_while语句和while语句只有一个表达式,用于控制循环是否进行。for语句有三个表达式,但可以部分省略或全部省略。

  4、for语句的循环体还可以放入表达式3,如:for(i=2;i<10;printf("%d",i),i++);

七、若一个循环结构的循环体中包含了另一个循环语句,则构成了循环的嵌套,称为多重循环。
  执行多重循环时,对外层循环变量的每一个值,内层循环的循环变量从初值变化到终值。对外层循环的每一次循环,内层循环要执行完整的循环语句。

八、循环语句中可能出现的缺陷:

1、一定要确保该循环是可以退出的,不要出现死循环。
  当为一个变量赋的值超过了该变量所能允许的最大值范围时,就会发生溢出错误。(在大部分的编程语言中,当溢出发生时,程序执行都将会被终止。然而,在Java语言中,溢出不会导致程序终止。对浮点型和双精度类型的变量来说,它们可以表式无穷大的数值。对于整型数据类型的变量来说,如果给变量赋的值超过了数据类型允许的最大值,该数值将以负数的形式表现出来。)

2、避免在循环中使用实数类型的变量。如:
  float count=0.0f;
  while (count!=1.0f) {count=count+0.3333333f;}
  这是一个死循环。

3、编写程序时要避免“off-by-one”错误,即循环体的循环次数比我们预计的要多一次或少一次。另:像count!=10这类表达式,用停止记数控制循环条件是很危险的,要尽量避免。

4、要点:确定循环体内包含一个语句使循环体最终结束。确定循环体的正确的循环次数。如果想执行循环体N次,那么就让初始化计数器counter为0,使用测试条件counter<N;或者让初始化计数器counter为1,使用测试条件counter<=N。
  • 大小: 24.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics