- 1、本文档共117页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 16 章 少见的控制结构 234
第第 1166 章章 少见的控制结构少见的控制结构
第第 1166 章章 少见的控制结构少见的控制结构
目录目录
目录目录
16.1 goto 语句
16.2 return 语句
16.3 递归调用
16.4 小结
相关章节相关章节
相关章节相关章节
经常碰到的有关控制的几个问题:见第 17 章
条件编码:见第 14 章
循环的代码:见第 15 章
在结构化程序中,有几个控制结构比较特别,它们不是典型的结构化结构,但也不是无结
构可言。这种情况不是任何语言都有。
116.6.11 gotogoto 语句语句
116.6.11 gotogoto 语句语句
计算机科学家对他们的观点都热心,有许多共同点,但讨论一旦转向 goto 语句,他们之间
就表现出针锋相对的两种意见了。
若一种语言不支持结构化控制,那么用 goto 来模仿起来结构化的作用时,是无人有意见的。
问题出在那些支持结构化程序结构的语言中,这些语言中,理论上 goto 是不需要的,因此用了
就引起很大争论。下面是两派意见的总结。
116.6.11..11 反对用反对用 gotogoto 的意见的意见
116.6.11..11 反对用反对用 gotogoto 的意见的意见
反对用 goto 的一方总的观点是不用 goto 的代码质量高。最早提出这争论的 Edsger
Dijkstra 的一句名言是:“考虑goto 语句是有害的”。Dijkstra 经观察后认为,程序语句的质
量与所用 goto 数目成反比。因此他认为不用 goto 语句的程序更容易检查错误。
含 goto 的代码不利于格式化。在有逻辑结构的程序中,往往用到了缩排形式,而 goto 则
影响结构化设计。想用缩格的结构去表示含 goto 的程序很难,几乎不可能。
用 goto 影响了编译程序的优化。无条件的 goto 语句使程序流很难分析,且降低编译程序
对代码的优化能力。因此,即使 goto 语句使源程序显得有效率,但在编译程序优化时却费事
了。
Goto 的拥护者总是认为,goto 语句使他们在编码时既快且省。但含 goto 的程序几乎很难
有最快和最短的可能。Donald Knath 在有名的文章《Structured Programming with go to
statement》中给出了几个用 goto 传代码效率低,目标大的例子 (1974)。
实际上,goto 的使用常破坏了结构化程序的原则,即使很仔细地用 goto 且不引起混乱,
第 16 章 少见的控制结构 235
一旦用了 goto 语句,整个程序的质量都受到影响,因此最好一个 goto 也别用。
116.6.11.2.2 支持用支持用 gotogoto 的意见的意见
116.6.11.2.2 支持用支持用 gotogoto 的意见的意见
支持用 goto 的人认为:在某些特殊环境下使用 goto 是有好处的。大多数反对 goto 的人反
对普遍用它。对 goto 的争论发生在 Fortran 成为最盛行的语言时。Fortran 没有提供很好的循
环结构。若没有注意到含 goto 的循环结构性不好的话,程序员写出来的程序流就到处转移。这
种代码无疑是质量很低的,但仅想着怎样用好 goto,又能有什么改进呢?因为 goto 与程序结
构化能力还有那么一截 的距离呢?
用 goto 语句恰到好处,可减少对同一程序段的多次复制,复制代码段引起各种麻烦:当要
同时修改这些复制部时易出错,复制代码增加了源文件和执行文件的长度。在这种情况下,goto
就显得比复制代码好 了。
若一个程序要求光分配资源,对资源进行处理,然后重新分配资源,这时 goto 就很有用了。
用 goto 你可 以在一个代码段中进行修改 。当你在每个地方查错时,用 goto 你忘记重新分配资
源的可能性减少了。
有时,用 goto
您可能关注的文档
最近下载
- 超星学习通 群芳谱-《红楼梦》中的女性形象鉴赏(长安大学)尔雅网课答案.pdf
- 2024年民主生活会个人对照检查材料3篇范文.docx VIP
- 《抽样检验培训教材》PPT课件.ppt VIP
- 2021高考作文写作素材:世界八大哲学家的名言+事例.docx
- 《证券投资理论与实务》教学资料:教案资料汇总.doc VIP
- 十进制加减可逆计数器的设计.pdf
- 华为手机结构件可靠性测试方法和要求.pdf
- 机械振动与冲击人体暴露于全身振动的评价第1部分一般要求GBT134411-2007.doc
- 橡胶胶管、硅胶密封圈、橡胶垫片生产项目环境影响报告表.pdf
- 小学英语四年级下册课本知识点(外研版三年级起点).pdf
文档评论(0)