为什么在Java和其他高级编程语言中,goto被认为是邪恶的?

3

可能是重复的问题:
Java中是否有goto语句?

为什么在Java中goto被认为是邪恶的,为什么它不适用于高级编程语言?


3
请参见此链接:https://dev59.com/LHE85IYBdhLWcg3w64IA。该链接讨论了Java中是否存在goto语句。 - Jon Newmuis
从根本上说,GOTO 没有什么问题。我们的 Java 编译器(以及所有其他编译器...)生成的代码充满了条件和非条件跳转,也就是 GOTO。然而,应用程序开发人员往往比编译器不够严谨。这样很容易编写出难以调试和理解的代码。 - Tony Ennis
@TonyEnnis:“基本上……没有问题”:我不同意:我们谈论的是源代码。_源代码_不仅仅是为了CPU而编写的。它更多地是为其他必须处理代码并理解它的人编写的。在这种情况下,GOTO是邪恶的。_编译代码_仅为CPU编写。在这里,GOTO不是邪恶的,它是CPU思考的方式。但是,在这个级别上,结构化编程的抽象已经被解决,因此上层抽象级别的“法则”不适用。 - A.H.
1个回答

5
最简单的答案是,当代码超过某些行数后,它会使代码难以管理和跟踪。 更好的原因是... xkcd 图片由xkcd提供。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,