杨宗德:C语言do、while、for关键字—循环


    杨宗德:C语言do、while、for关键字—循环。C 语言中循环语句有三种:while 循环、do-while 循环、for 循环。

    while 循环:先判断while 后面括号里的值,如果为真则执行其后面的代码;否则不执行。while(1)表示死循环。死循环有没有用呢?

    看下面例子:比如你开发一个系统要日夜不停的运行,但是只有操作员输入某个特定的字符‘#’才可以停下来。
while(1)
{
   if(‘#’== GetInputChar())
   {
      break;
   }
}
    一、break 与continue 的区别
break 关键字很重要,表示终止本层循环。现在这个例子只有一层循环,当代码执行到break 时,循环便终止。

    如果把break 换成continue 会是什么样子呢?continue 表示终止本次(本轮)循环。当代码执行到continue 时,本轮循环终止,进入下一轮循环。

    while(1)也有写成while(true) 或者while(1==1) 或者while((bool) 1)等形式的,效果一样。

    do-while 循环:先执行do 后面的代码,然后再判断while 后面括号里的值,如果为真,循环开始;否则,循环不开始。其用法与while 循环没有区别,但相对较少用。

    for 循环:for 循环可以很容易的控制循环次数,多用于事先知道循环次数的情况下。

    留一个问题:在switch case 语句中能否使用continue 关键字?为什么?

    二、循环语句的注意点
1、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数。例如:



    2、建议for 语句的循环控制变量的取值采用“半开半闭区间”写法。
半开半闭区间写法和闭区间写法虽然功能是相同,但相比之下,半开半闭区间写法写法更加直观。



    3、不能在for 循环体内修改循环变量,防止循环失控。



    4、循环要尽可能的短,要使代码清晰,一目了然。
如果你写的一个循环的代码超过一显示屏,那会让读代码的人发狂的。解决的办法由两个:第一,重新设计这个循环,确认是否这些操作都必须放在这个循环里;第二,将这些代码改写成一个子函数,循环中只调用这个子函数即可。一般来说循环内的代码不要超过20行。

    5、把循环嵌套控制在3 层以内。
国外有研究数据表明,当循环嵌套超过3 层,程序员对循环的理解能力会极大的降低。如果你的循环嵌套超过3 层,建议你重新设计循环或是将循环内的代码改写成一个字函数。

    杨宗德:C语言do、while、for关键字—循环,就介绍到这里,要了解更多程序开发的课程,就来良师益友网杨宗德程序开发·精讲堂