Type: concept
Confidence: 0.90
Created: 2026-04-17
Updated: 2026-04-17
Tags: 技术研究历史计算理论

意大利面条式代码

概述

意大利面条式代码(Spaghetti Code)指控制流像一团纠缠不清的面条般混乱的程序,由大量 goto 语句导致代码执行路径在行号之间来回穿梭,使任何人(包括原作者)都几乎无法理解程序逻辑。

关键内容

成因

在1960年代的编程实践中,主流语言(FORTRAN、COBOL、ALGOL、汇编语言)都大量依赖 goto 语句来实现控制流。程序员习惯于在代码中随意跳转,产生了蛛网般的控制流。

典型特征

一段典型的意大利面条式代码:

10  IF X > 0 GOTO 50
20  Y = Y + 1
30  IF Y > 10 GOTO 70
40  GOTO 10
50  X = X - 1
60  GOTO 30
70  IF Z = 0 GOTO 20
80  PRINT RESULT
90  GOTO 10

仅9行代码就包含5个 goto 跳转。程序员不得不用铅笔在打印出的代码清单上画线来追踪控制流——这些线条交叉缠绕,看起来就像一盘意大利面条。

危害

解决方案

结构化编程通过消除 goto、使用顺序/选择/循环三种基本结构,从根本上消除了意大利面条式代码的产生条件。

来源

相关