낙담의 대부분은 60 년대 초반에 다음과 같은 무차별적인 힘에 대해 설득력있는 신 지크 스트라 (Jaikstra) 신에게 큰 소리로 창조 된 일종의 "종교"에서 나온다.
- 어떤 코드 블록 으로든 뛰어들 수 있습니다.
- 처음부터 기능이 실행되지 않음
- 처음부터 실행되지 않은 루프
- 건너 뛴 변수 초기화
- 가능한 정리없이 코드 블록에서 벗어나십시오.
이것은 goto
현대 언어 의 진술 과 더 이상 관련이 없으며 , 존재하는 언어 이외의 코드 구조의 생성을 지원하기 위해 존재합니다.
특히 위의 첫 번째 주요 지점은 더 이상 허용되고 두 번째 주요 지점은 청소됩니다 ( goto
블록에서 스택을 가져 오면 스택이 올바르게 풀리고 모든 적절한 소멸자가 호출 됨)
goto를 사용하지 않는 코드조차도 읽을 수없는 방법을 알기 위해이 답변 을 참조 할 수 있습니다. 문제 자체가 아니라 잘못 사용하는 것입니다.
if
그냥 사용하지 않고 전체 프로그램을 작성할 수 있습니다 for
. 물론, 읽기 어렵고, 어색하고 불필요하게 복잡하지는 않습니다.
그러나 문제는 아닙니다 for
. 나야
상황이 좋아 break
, continue
, throw
, bool needed=true; while(needed) {...}
, 등의 이상 지적하는 가장 무도회 goto
-50 년 현대 laguages-의 발명 이후 여전히 포로를 원하는의 Djikstrarian 광신자의 scimitars에서 멀리 탈출. 그들은 지크 스트라가 말한 것을 잊었고, 단지 그의 음표의 제목 만 기억하고 (GOTO는 해로운 것으로 간주되었고 그의 제목도 아니었다 : 편집자에 의해 변경되었다) 4 순서대로 배치 된 편지.
2011 년 : Djikstra가 강요 goto
한 GOTO
진술 을 다루지 않은 것을 이해해야 할 때 입니다.