나는 이것에 대한 당신의 모든 젊은 whippersnappers에 동의하지 않을 것입니다.
방법의 중간에 반환을 사용하는 것은 매우 나쁜 습관입니다. ", Dahl, Dijkstra 및 Hoare의"구조적 프로그래밍 "에서 계속됩니다.
기본 규칙은 모든 제어 구조와 모든 모듈에 정확히 하나의 입구와 출구가 있어야한다는 것입니다. 모듈 중간에 명시 적으로 반환하면 해당 규칙이 위반되고 프로그램 상태에 대해 추론하기가 훨씬 더 어려워 져 프로그램이 올바른지 여부를 말하기가 훨씬 더 어려워집니다 (이는 훨씬 더 강력한 속성입니다. "작동 여부"보다).
"GOTO 문은 유해한 것으로 간주 됨"및 "구조적 프로그래밍"이 1970 년대의 "구조적 프로그래밍"혁명을 시작했습니다. 이 두 부분은 오늘날 우리가 if-then-else, while-do 및 기타 명시 적 제어 구조를 가지고있는 이유와 고수준 언어의 GOTO 문이 멸종 위기에 처한 종 목록에있는 이유입니다. (내 개인적인 의견은 그들이 멸종 종 목록에 있어야한다는 것입니다.)
첫 번째 시도에서 허용 테스트를 통과 한 최초의 군사 소프트웨어 인 Message Flow Modulator는 편차, 면제 또는 "예,하지만"말이없는 언어로 작성되었다는 점은 주목할 가치가 있습니다. GOTO 문.
또한 Nicklaus Wirth가 Oberon 프로그래밍 언어의 최신 버전 인 Oberon-07에서 RETURN 문의 의미를 변경하여 형식화 된 프로 시저 (즉, 함수) 선언의 후행 부분이되었음을 언급 할 가치가 있습니다. 함수 본문의 실행 가능한 문. 변화의 그의 해설은 이전의 형태 때문에 그가 정확하게 해냈다 고 말했다 WAS 구조화 프로그래밍의 한 출구 원칙의 위반.