Vâng, hãy xem các phiên bản đầu tiên của Fortran đã IF
GOTO
và DO
.
Có một số biến thể trên IF và GOTO bao gồm GOTO được gán và GOTO được tính toán giống như một tuyên bố CASE.
Vì vậy, ngoài các vòng lặp DO, tất cả các câu lệnh điều khiển là các biến thể của IF và GOTO liên quan đến các số câu lệnh được mã hóa cứng. Kết quả là bún nhiều hơn mì spaghetti.
Bản thân vòng lặp DO đã có vấn đề ở chỗ nó hoàn toàn "làm cho đến khi" với bài kiểm tra ở dưới cùng của vòng lặp, vì vậy không có cách nào để bỏ qua lần lặp đầu tiên ngoài việc lặp lại với "IF (cond) GOTO 9999" khác .
Vì vậy, vì hầu hết các cấu trúc điều khiển là "vải lanh GOTO", bất kỳ thay đổi đáng kể nào đối với mã sẽ liên quan đến nhiều thay đổi dễ bị lỗi đối với số dòng đích.
Vòng lặp DO cần được bổ sung bằng GOTO để biến nó thành DO WHILE.
Fotrans sớm nhất có "GOTO" của mẫu.
IF (VAR) 100,200,300
Điều đó có nghĩa là nếu VAR là <0 thì chuyển đến câu lệnh 100. If = 0 thì câu lệnh 200, nếu> 0 thì câu lệnh 300.
Nhìn chung, đó không phải là một nỗ lực quá tệ. Thực tế là bạn có thể viết các công thức trông giống như những gì giáo sư bạn đã viết trên bảng đen là tính năng giết người của FORTRAN, dòng chương trình phải chờ vài năm để bắt kịp.