스파게티 코드(spaghetti code)는 컴퓨터 프로그램의 소스 코드가 복잡하게 얽힌 모습을 스파게티의 면발에 비유한 표현이다. 스파게티 코드는 정상적으로 작동하지만, 사람이 코드를 읽으면서 그 코드의 작동을 파악하기는 어렵다.
스파게티 코드는 GOTO 문을 지나치게 많이 사용하거나, 프로그램을 구조적으로 만들지 않는 경우에 만들어지기 쉽다.
예제
다음의 두 베이직 코드는 같은 작동을 한다.
10 DIM i
20 i = 0
30 i = i + 1
40 IF i <> 10 THEN GOTO 90
50 IF i = 10 THEN GOTO 70
60 GOTO 30
70 PRINT "Program Completed."
80 END
90 PRINT i; " squared = "; i * i
100 GOTO 30
10 DIM i
20 FOR i = 1 TO 9
30 PRINT i; " squared = "; i * i
40 NEXT
50 PRINT "Program Completed."
이때 앞쪽의 GOTO 문을 사용한 코드에 비해 뒤쪽의 코드는 for 문을 사용했고, 작동 방식이 더 직관적이다.
같이 보기