«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

本站技术贴除标明为“原创”的之外,其余均为网上转载,文中我会尽量保留原作者姓名,若有侵权请与我联系,我将第一时间做出修改。谢谢!

             ——既瑜


天气预报(南京)


我的分类(专题)

首页(183)
【趣味文摘】(22)
【五子连珠】(13)
【技术文档】(136)
【电脑技术】(6)
【疑难问题】(1)
【我的心情】(5)


最新日志
花语(中英文对照版)
各种花的花语
NTFS格式的7个精彩问答(pconli
童言无忌,有趣得一蹋
给MM修电脑的三个步骤[转载]
J2EE 面试题综合
JAVA编程规则
[转] P2P之UDP穿透NAT的原理与
[转]词法分析器
文件加密技术
一个让人发狂的PI求解C程序
[转]直线生成算法之DDA
[转]利用内核对象----互斥量实现应用
[转]如何正确的计算文件收发进度
双机调试VC程序
[转]分治法优化大整数乘法 C++实现
浮点数值的内存结构
[转]双链表实现大整数的加法与乘法[VC
拜占廷将军问题[转]
某人的挂QQ的程序源代码,虽然没用了,拿

最新回复
回复:vc中的CString的操作
回复:[转]分治法优化大整数乘法 C++
回复:[转]分治法优化大整数乘法 C++
回复:花语(中英文对照版)
回复:基本排序算法比较与选择[转载]
回复:c++中强制类型转换操作符小结
回复:c++中强制类型转换操作符小结
何必那么执着于是大头猫还是愤怒的小鸟,淡
回复:浮点数值的内存结构
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:32位位图到24位位图的转换
dren, ages 16 and 20
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:各种花的花语

留言板
签写新留言

不是0-1背包喔
桂花的花语``
谢谢
提议
提议

统计
blog名称:★既瑜★
日志总数:183
评论数量:636
留言数量:-25
访问次数:1406122
建立时间:2005年3月12日

链接


http://www.nju.edu.cn
http://bbs.nju.edu.cn 
http://www.t7-online.com
http://www.csdn.net
http://www.91f.net
http://www.crsky.com
我的MSN BLOG 

联系我

  OICQ:215768265
  njucs2001@hotmail.com
  erichoo1982@gmail.com

 

W3CHINA Blog首页    管理页面    写新日志    退出


[【技术文档】]关于goto语句(starfish)
既瑜(224499) 发表于 2005/4/15 20:07:21

在60年代末和70年代,关于goto语句的争论是比较激烈的。 主张从高级语言中去掉goto语句的人认为:goto语句是对程序结构影响最大的一种有害语句;他们的主要理由是:goto语句使程序的静态结构和程序的动态执行之间有很大的差别,这样使程序难以阅读,难以查错。对一个程序来说,人们最关心的是他运行的正确与否,去掉goto语句后,可以直接从程序结构上反映程序的运行过程。这样,不仅使程序的结构清晰、便于阅读,便于查错,而且也有利于程序正确性的证明。 持不同意见者认为,goto语句使用起来比较灵活,而且有些情形能够提高程序的效率。如果一味强调删除goto语句,有些情形反而会使程序过于复杂,增加一些不必要的计算量。 1974年, D.E.Knuth (算法界的超级大牛,The art of computer programming 的作者)对于goto语句的争论作了全面的公正的评述,他的基本观点是:不加限制地使用goto语句,特别是使用往回跳的goto语句,会使程序的结构难于理解,这种情形应该尽量避免使用goto语句;另外,为了提高程序的效率,同时又不破坏程序的良好结构,有控制地使用一些goto语句是有必要的。用他的话来说:“有些情形,我主张废除转向语句,有些情形我主张引进转向语句。”(见D.E.Knuth的大作:《带有转向语句的结构化程序设计》) 进一步讲,goto语句能不能消除呢?或者说goto语句这一语言成分能不能从程序设计语言中取消呢?回答是肯定的。1966年,G.Jacopini和C.Bohm从理论上证明了:任何程序都可以用序列结构、条件结构和循环结构表示出来。具体消除goto语句的方法有:增加辅助变量或者改变程序执行顺序。这方面的具体内容你可以参考程序设计理论方面的资料。 需要指出的是,虽然关于结构化程序设计的讨论是从废除goto语句开始的,但是绝不能认为结构程序设计就是避免goto语句的程序设计方法。事实上,结构程序设计讨论的是一种新的程序设计的方法和风格,他所关注的焦点是得到的程序的结构的好坏,而有无goto语句并不是一个程序结构好坏的标志。也就是说,限制和避免goto语句是得到结构化程序的一个手段,而不是我们的目的。 再稍微谈一下结构化程序设计。好的结构的程序一般由7种结构组成:一种序列结构;三种选择结构: 1.if-then;  2.if-then-else;  3.分支选择:  pascal中是“case .. of ..., ”;C,C++,java中是“switch (..) case...:...”;三种循环结构: 1.while循环: 先判断条件P,如果为真则不断地执行循环体A; 2.repeat循环:先执行循环体A,然后判断条件P,如果P成立则重新回到入口处执行循环体A; 在pascal中就是“repeat..until..”;在C,C++,java中是“do {...} while(..);”; 3.N+1/2循环: 从入口开始先执行A,然后判断P,如果P成立则执行B,然后回到入口执行A;如果P不成立则到达出口;这种循环在一般的程序设计语言中就是for循环 这七种结构都有一个特点:每一种结构都严格遵守“一个入口,一个出口”的原则。这一原则是结构化程序设计中的一个非常重要的原则。也正是由于遵循了这个原则,一个复杂的程序才可以被分解成若干个结构以及若干层子结构,从而使程序的结构层次分明、清晰易懂。 使用这7种结构编写的程序可以采用“自顶向下,逐步细化”的程序设计方法来设计程序。该方法按照先全局后局部、先整体后细节、先抽象后具体的过程组织人们的思维活动,使得编写的程序结构清晰、容易阅读和修改。同时还可以结构逐步求精的过程进行程序的正确性验证,即采取边设计边验证的方法,以简化程序正确性的验证。

阅读全文(1800) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144766885 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号