수업시간 교수님께 들은 내용을 정리.
Dijkstra는
structured programming without GOTO 를 주장
Knuth는
structured programming with GOTO 를 주장
우리는 goto가 필요없이 프로그램을 짤 수 있다
하지만 goto가 있다면 매우 효율적 인 경우 가 있다.
예를 들자면
while(){
...
while(){
...
while(){
...
}
}
}
등의 코드에서 (반복문을 깊숙히 내려갔을때)
goto 문을 사용가능하면 goto를 통해 이 반복문들을 쉽게 빠져 나올 수 있다.
없다면?
여러개 타고 들어온 반복문들에 빠져나오는 조건을 설정 해주어 나와야 할 것이다.
이러한 사항들이 있음을 Knuth는 주장을 했고
지금 현재 우리는 여전히 goto문을 사용 할 수 있다.
이 자체가 필요성을 인정했기 때문에 남아 있는 것 일 것이다.
물론 goto 문을 남용 할 경우 ugly code가 될 수 있고 이는 잘 짠 코드가 아니다
(잘 짠 코드란? - 같은 기능을 하는 프로그램을 더 효율적이고 알아보기 쉽게 짠 코드)
그러므로 goto문을 남용 하지는 말되 정말 필요한 순간(goto문이 효율적인) 이 온다면 쓸 수 있다.
그 점을 기억해 두자.!
참고) 기억과 조사 그리고 기억해두어야 할 점을 위주로 정리 함으로 사이사이 약간의 오류들이 있을 수 있음.
'학부생 공부 > 생각들' 카테고리의 다른 글
abstract data type 어떤 이유? (0) | 2019.12.01 |
---|---|
정적영역, 스택영역, 그리고 힙 영역 (0) | 2019.11.09 |