为什么不赞成使用goto语句(C语言)

为什么不赞成使用goto语句?上课写了一句goto语句,被老师批了。goto不是蛮好用的。详细点,拜托。... 为什么不赞成使用goto语句?上课写了一句goto语句,被老师批了。
goto不是蛮好用的。详细点,拜托。
展开
 我来答
风若远去何人留
2015-09-09 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450136
专业C/C++软件开发

向TA提问 私信TA
展开全部
C语言是面向过程的语言,在编程的时候,一般会遵从结构化程序设计的要求。
结构化程序设计要求模块单入口,单出口,而goto语句则容易破坏这种结构,所以不建议使用。
但这并不是强制的,只是一种建议,有时goto可以大幅度简化代码量,在保证代码足够清晰明确下,偶尔使用也是可以的。

以下为结构化程序设计的相关概念:

最早由E.W.Dijikstra在1965年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。
结构化程序设计曾被称为软件发展中的第三个里程碑。该方法的要点是:
(1) 主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制GOTO语句的使用。用这样的方法编出的程序在结构上具有以下效果:
a. 以控制结构为单位,只有一个入口,一个出口,所以能独立地理解这一部分。
b. 能够以控制结构为单位,从上到下顺序地阅读程序文本。
c.由于程序的静态描述与执行时的控制流程容易对应,所以能够方便正确地理解程序的动作。
(2)“自顶而下,逐步求精”的设计思想,其出发点是从问题的总体目标开始,抽象低层的细节,先专心构造高层的结构,然后再一层一层地分解和细化。这使设计者能把握主题,高屋建瓴,避免一开始就陷入复杂的细节中,使复杂的设计过程变得简单明了,过程的结果也容易做到正确可靠。
(3)“独立功能,单出、入口”的模块结构,减少模块的相互联系使模块可作为插件或积木使用,降低程序的复杂性,提高可靠性。程序编写时,所有模块的功能通过相应的子程序(函数或过程)的代码来实现。程序的主体是子程序层次库,它与功能模块的抽象层次相对应,编码原则使得程序流程简洁、清晰,增强可读性。
(4) 主程序员组。
其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简的求解方法问题;(4)是解决软件开发的人员组织结构问题。
cgiggle
2009-06-03 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1274万
展开全部
使用goto编写的程序逻辑性差,可读性差
不过在退出多重循环的时候 建议使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友350302d
2009-06-03 · TA获得超过669个赞
知道小有建树答主
回答量:1048
采纳率:0%
帮助的人:613万
展开全部
降低效率,降低可读性,破坏程序结构化
一般goto用来跳出多级循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
keyiwenwo
2009-06-03 · TA获得超过8871个赞
知道小有建树答主
回答量:993
采纳率:100%
帮助的人:1056万
展开全部
达不到现在所赞成使用的"结构化".

如果代码多了,跳来跳去感觉很乱,个人认为
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenjh826
2009-06-03 · TA获得超过384个赞
知道答主
回答量:153
采纳率:100%
帮助的人:44.4万
展开全部
goto语句会破坏“结构化”。
不但带来编程的混乱,而且容易出错。
打个比方,比如你生产一个机器,你会希望零件之间不要发生太紧密的联系,一般用螺丝之类的来连接。如果你把两个零件用电焊焊死,那么一旦一个零件出错,另一个也会受到影响。
goto起的作用就像把零件焊死一样。如果程序某一部分因为某种原因必须改动,可能会导致整个程序产生巨大的修改工作量。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式