《编程论文》
2026-01-24 22:06:03
发布于:安徽
中文完整译文
GOTO 语句有害论
多年来,我一直注意到这样一个现象:程序员的水平与其编写程序中 GOTO 语句的密度成反比。最近我终于明白为什么使用 GOTO 语句会产生如此灾难性的后果,并且确信 GOTO 语句应该从所有 "高级" 编程语言中废除(也就是说,除了可能的纯机器语言之外的所有语言)。
为什么 GOTO 语句如此有害?因为它允许程序执行流程无条件跳转到任意位置,这种非结构化的控制流会导致程序逻辑变得复杂且难以理解,尤其是在大型项目或多人协作开发中。这种跳转破坏了程序的顺序执行流程,使得调试和维护变得更加困难,甚至可能导致程序行为的不可预测性。
GOTO 语句的滥用会导致代码中出现 "意大利面条式代码"(Spaghetti Code),即代码逻辑错综复杂,如同一盘缠绕的意大利面条,难以理清执行路径。这不仅增加了理解代码的难度,也使得发现和修复错误变得异常困难。
我认为,程序应该只使用三种基本控制结构来构建:
顺序结构:语句按顺序执行
选择结构:通过 if-else 等语句进行条件判断
循环结构:通过 for/while 等语句实现重复执行
这些控制结构能够使程序的执行流程清晰可见,便于理解、调试和维护。同时,这也为程序正确性证明、代码优化和团队协作提供了基础。
我相信,废除 GOTO 语句将使编程成为一项更具智力挑战性、更令人愉悦的活动,同时也将提高程序的可靠性和可维护性。
这里空空如也











有帮助,赞一个