c语言中,我觉得goto语句很好用啊,在做一些判断时很实用,但为什么书上说宁愿加强循环也不用goto语句?

难道goto就这样被封杀了?还是goto可以仅限于某种条件下才能实用。。求详细解释,,就这么多分了,全给!

goto语句也称为无条件转移语句,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
1968年,Edsger Wybe Dijkstra 首先提出“GOTO语句是有害的”论点,向传统程序设计方法提出了挑战,从而引起了人们对程序设计方法讨论的普遍重视。
主要理由是:GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。去掉GOTO语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。
后来从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。这个结论表明,从高级程序语言中去掉GOTO语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。
所以目前是不推荐使用goto的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-03
goto用起来是方便,但是破坏了程序的结构,你写的时候可能很明白,但对以后的维护、其它人员的接手都是破坏性的。一个良好的程序结构,比效率都重要,对一个产品来说,可维护性的重要性是很高的,而goto语句正是这方面的大敌。来自:求助得到的回答
第1个回答  2013-04-03
可能是因为goto跳转的话,跳来跳去,最后会导致程序很难测试,如果出了问题,很难找吧。
第2个回答  2013-04-03
在简单的代码中用goto语句没什么关系,但是在复杂的语句中,容易造成内存泄露,或者造成循环出错。
第3个回答  2013-04-03
goto太牛了,可以转到任何位置,用太多,不利于程序阅读,有时还会出现死循环,
相似回答