


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一看就知道是goto和call分不清的孩子然后在群里敲代码的时候,小猫用了Do.Loop循环,结果群里有个小朋友问Do.Loop循环是什么?-_-|结果一群人都说很少用Do.Loop循环,大部分都喜欢用Goto,我才发现这个问题,并不是说不能用Goto,而是少用Goto!废话讲完了,开始正题先为新手解释下Goto和Call的区别Goto是用来跳转代码的,即当代码执行到Goto时,跳转到Rem指定的位置向下执行,它不会在执行完时,返回到Goto语句的下一条。Call也是用来跳转代码的,但是更准确的说,Call是用来调用子程序的!何为调用?即执行到Call时,将指定的子程序(Sub)放到代码中,当子程序执行结束后,它会回到Call语句的下一条,继续向下执行。如果很难理解,那就用刚开始提到的那位同学的代码来解释吧:这是Goto语句这是Call语句1. a=152. b=103. if a-b -156. goto sub27. end if8. end if9.10. Rem sub211. MsgBox a-b大于-1512.13. Rem sub114. MsgBox a-b小于15/脚本到底部了,执行结束!复制代码1. a=152. b=103. if a-b -156. call sub27. end if8. end if9.10. Sub sub2()11. MsgBox a-b大于-1512. End Sub 13.14. Sub sub1()15. MsgBox a-b小于1516. End Sub 复制代码OK,两种区别讲清楚了,现在来讲讲这次的主题,关于Goto语句的利与弊!我上面说过,我提倡Goto要少用,绝对不能滥用,其中,最主要的一个原因是,Goto语句破坏了程序结构,使程序可读性变差,你用一个,两个或许影响不大,但是你如果用了十几个Goto呢?下面这段话摘自百度百科(如果大家觉得太多了,那么你只需看“goto语句的结果”那一段):源地址: /view/1363088.htm问题起源:60年代中期以后,计算机硬件技术日益进步,计算的存贮容量、运算速度和可靠性明显提高,生产硬件的成本不断降低。计算机价格的下跌为它的广泛应用创造了极好的条件。在这种形势下,迫切要求计算机软件也能与之相适应。因而,一些开发大型软件系统的要求提了出来。然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软件危机”。为了克服这一危机,一方面需要对程序设计方法、程序的正确性和软件的可靠性等问题进行系列的研究;另一方面,也需要对软件的编制、测试、维护和管理的方法进行研究,从而产生了程序设计方法学。goto语句是有害的观点:1968年,EW代克斯特拉首先提出“GOTO语句是有害的”论点,向传统程序设计方法提出了挑战,从而引起了人们对程序设计方法讨论的普遍重视。goto语句的争论:在60年代末和70年代初,关于GOTO语句的用法的争论比较激烈。主张从高级程序语言中去掉GOTO语句的人认为,GOTO语句是对程序结构影响最大的一种有害的语句,他们的主要理由是:GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。去掉GOTO语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。持反对意见的人认为,GOTO语句使用起来比较灵活,而且有些情形能提高程序的效率。若完全删去GOTO语句,有些情形反而会使程序过于复杂,增加一些不必要的计算量。关于goto语句的解决方法:1974年,DE克努斯对于GOTO语句争论作了全面公正的评述,其基本观点是:不加限制地使用GOTO语句,特别是使用往回跳的GOTO语句,会使程序结构难于理解,在这种情形,应尽量避免使用GOTO语句。但在另外一些情况下,为了提高程序的效率,同时又不至于破坏程序的良好结构,有控制地使用一些GOTO语句也是必要的。用他的话来说就是:“在有些情形,我主张删掉GOTO语句;在另外一些情形,则主张引进GOTO语句。”从此,使这场长达10年之久的争论得以平息。后来,G加科皮尼和C波姆从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。这个结论表明,从高级程序语言中去掉GOTO语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。/hidegoto语句的结果:在C/C+等高级编程语言中保留了goto语句,但被建议不用或少用。在一些更新的高级编程语言,如Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使 用,使程序简洁易读;尽管如此后来的c#还是支持goto语句的,goto语句一个好处就是可以保证程序存在唯一的出口,避免了过于庞大的if嵌套。如果有仔细看上面这段话的同学,相信能明白goto语句的利与弊了吧?好吧,还是用代码来解释:滥用goto语句的例子合理利用goto语句1. Rem A2. Iffalse3. goto B4. End If 5.6. Rem C7. if true8. gotoA9. ElseIf false 10. goto B11. else 12. goto C13. End If 14.15. Rem B16. /这样的代码可读吗,你可以划出流程图吗。而且goto完全是可以用其他语句代替的。复制代码1. Do2. Do3. Do4. Iftrue5. Goto 停止/利用goto跳出深层嵌套6. End If 7. Loop8. Loop9. Loop10.11. Rem 停止复制代码讲解就到这里了,小猫的想法就是建议大家如果能不用goto就不用goto,尽量多使用C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大气污染控制工程实验教学课件
- 《CR国际新城》课件
- 缝制机械行业智能转型考核试卷
- 花卉种植的都市农业与社区花园建设考核试卷
- 2025年皮革色浆项目发展计划
- 2025年给皂液机项目发展计划
- 《xch玉树地震滑坡》课件:灾害分析与救援策略
- 2019-2025年一级造价师之建设工程造价管理押题练习试题B卷含答案
- 2025年会议电视系统(含终端)项目建议书
- 2025年高性能功能陶瓷结构陶瓷合作协议书
- 课题开题报告:职业教育市域产教联合体运行逻辑与监测评估机制研究
- 商品出库管理规范
- 装修施工危险性较大工程应急处理预案:保障施工安全
- 浙江《建筑工程消防验收操作技术导则(试行)》
- 2025年湖南省中考数学模拟试卷(一)(原卷版+解析版)
- 光缆线路工程验收标准
- 电力施工管理制度
- 2025南通辅警考试题库
- 课题开题报告:机理-数据混合驱动下高速公路新型混合交通流状态估计与协同控制策略研究
- 2023年湖南省怀化市中考物理试题【含答案、解析】
- 2024年浙江省《保安员资格证考试必刷500题》考试题库必背含答案
评论
0/150
提交评论