|
根据控制变量的性质,以及赋给变量的用于测试控制表达式的值的类型,循环可以分为两类:
(1) 计数器控制循环:
(2) 始终标记控制循环
如果我们知道循环将运行的确切次数,就使用计数器控制循环。这里,使用了一个名为计数器的控制变量。该计数器必须正确地初始化、测试并更新以便实现所需的循环操作。循环运行的次数可以是一个常量或赋给了一个数值的变量。计数器控制循环有时又称为有限重复循环。
在始终标记循环中,使用了一个称为始终数值的特殊值来改变虚幻控制表达式的值。例如,当读取数据时,就可以使用一个特殊值,来表示数据的结束。这个控制变量称为始终标记变量。始终标记控制循环往往为无限重复循环,因为在循环开始之前,并不知道循环重复的次数。
选择循环
给定一个问题,程序员首先关心的是确定要采取的循环结构类型。要从C语言所支持的三种循环中选择一种,可以根据以下一些策略:
分析问题,看看是要求先测试还是后测试循环。
如果要求后测试循环,就只能选择do…while循环。
如果要求先测试循环,那就可以选择for和while循环。
确定循环终止是要求基于计数器控制还是始终标记控制。
如果需要基于计数器控制,则使用for循环。
如果需要基于始终标记控制,则使用while循环。
要注意的是,基于计数器控制核基于始终标记控制的循环都可以用所有三种循环来实现。
谨记
不要忘记了在do…while语句的末尾加分号。
在while或for语句的控制表达式后加分好不是语法错误,但很可能回事逻辑错误。
在for语句的头部使用逗号而不是分号是一个错误。
不要忘了在while或do…while循环的循环体中加速递增语句。
在测试表达式中,一个常见的错误是使用错误的关系运算符。要确保循环正好按所需的次数运行。
应避免使用“=”替代“==”运算符这种常见错误。
在for语句和循环体中不要修改控制变量。否则将是一个逻辑错误。
不要比较两个浮点数的相等性。
避免使用while和for语句来实现出口控制循环,而应使用do…while语句。同样,不要使用do..while来实现先测试循环。
当药反复对循环体中的变量执行某操作时,应确保在进入循环之前该变量已被正常地初始化了。
尽管把初始化、测试和递增段放在for语句的头部之外是合法的,但最好尽可能避免这样做。
尽管在初始化和递增语句中使用算数表达式是允许的,但应注意算数表达式计算时的圆整和裁剪错误。
尽管for前面的语句以及循环体中的语句可以放在for的头部中,但应避免这样做,因为这将使得程序的可读性变差。
在任何循环中使用break和continue语句都被认为是非结构化程序设计。应尽可能尝试删去这些跳转语句的使用。
在程序的任何地方都硬避免goto语句的使用。
恰当地把循环体中的语句缩排,可以提供程序的可读性和可理解性。
在循环前和后都使用空白符,并强烈推荐添加终止说明。
只有当需要退出程序时才使用exit()函数。
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com