凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

始终标记循环

已有 548 次阅读| 2016-4-15 14:21

根据控制变量的性质,以及赋给变量的用于测试控制表达式的值的类型,循环可以分为两类:

(1)    计数器控制循环:

(2)    始终标记控制循环

如果我们知道循环将运行的确切次数,就使用计数器控制循环。这里,使用了一个名为计数器的控制变量。该计数器必须正确地初始化、测试并更新以便实现所需的循环操作。循环运行的次数可以是一个常量或赋给了一个数值的变量。计数器控制循环有时又称为有限重复循环。

在始终标记循环中,使用了一个称为始终数值的特殊值来改变虚幻控制表达式的值。例如,当读取数据时,就可以使用一个特殊值,来表示数据的结束。这个控制变量称为始终标记变量。始终标记控制循环往往为无限重复循环,因为在循环开始之前,并不知道循环重复的次数。

选择循环

给定一个问题,程序员首先关心的是确定要采取的循环结构类型。要从C语言所支持的三种循环中选择一种,可以根据以下一些策略:

分析问题,看看是要求先测试还是后测试循环。

如果要求后测试循环,就只能选择do…while循环。

如果要求先测试循环,那就可以选择forwhile循环。

确定循环终止是要求基于计数器控制还是始终标记控制。

如果需要基于计数器控制,则使用for循环。

如果需要基于始终标记控制,则使用while循环。

要注意的是,基于计数器控制核基于始终标记控制的循环都可以用所有三种循环来实现。

谨记

不要忘记了在do…while语句的末尾加分号。

whilefor语句的控制表达式后加分好不是语法错误,但很可能回事逻辑错误。

for语句的头部使用逗号而不是分号是一个错误。

不要忘了在whiledo…while循环的循环体中加速递增语句。

在测试表达式中,一个常见的错误是使用错误的关系运算符。要确保循环正好按所需的次数运行。

应避免使用“=”替代“==”运算符这种常见错误。

for语句和循环体中不要修改控制变量。否则将是一个逻辑错误。

不要比较两个浮点数的相等性。

避免使用whilefor语句来实现出口控制循环,而应使用do…while语句。同样,不要使用do..while来实现先测试循环。

当药反复对循环体中的变量执行某操作时,应确保在进入循环之前该变量已被正常地初始化了。

尽管把初始化、测试和递增段放在for语句的头部之外是合法的,但最好尽可能避免这样做。

尽管在初始化和递增语句中使用算数表达式是允许的,但应注意算数表达式计算时的圆整和裁剪错误。

尽管for前面的语句以及循环体中的语句可以放在for的头部中,但应避免这样做,因为这将使得程序的可读性变差。

在任何循环中使用breakcontinue语句都被认为是非结构化程序设计。应尽可能尝试删去这些跳转语句的使用。

在程序的任何地方都硬避免goto语句的使用。

恰当地把循环体中的语句缩排,可以提供程序的可读性和可理解性。

在循环前和后都使用空白符,并强烈推荐添加终止说明。

只有当需要退出程序时才使用exit()函数。

凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 11:31 , Processed in 0.017900 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部