프로그래밍 칠거지악
글을 쓸 때 설명 할 것인가 고민을 하다가 큰 상관없다고 생각하여 말았는데, 결국 언급 된 사례가 있어 해명을 합니다. 저도 C 언어를 사용 할 때에는 함수 탈출 전 뒤처리가 필요 할 때 goto를 사용합니다. 이런 경우에도 return 전에 뒤처리 코드를 적을 수도 있겠지만, return 이 발생하는 곳이 여러 곳인 경우에는 goto 를 사용하기 도 합니다. 사실 화석보다 찾아보기 힘듭니다 ㅡ.ㅡ;
중첩 된 반복 문을 빠져나갈 때의 goto
"중첩 된 반복문을 빠져 나갈 때의 goto 문은 괜찮지 않겠냐?"는 의견을 받았습니다.
듣고보니 당연히 goto 가 편할 것으로 보입니다. 그런데, "왜 그런 코딩을 한 기억이 없는 가?" 라는 생각이 들어서 제 경험을 되돌아 봤습니다. 제 방식이 무조건 옳다는 것은 아니지만, 저의 경우에는 중첩 된 반복문의 탈출은 return을 사용하고 있었습니다.
중첩 된 반복문은 함수로 따로 빼서 사용하는 습관이 있다는 것을 저도 이번에 깨달았습니다.
중첩문을 빠져나오고 반복문의 처리 된 내용을 마무리 처리를 거쳐야 하는 경우라면, 단순히 return 으로 끝낼 수가 없으니, 따로 함수로 빼고 return 값을 이용해서 마무리 처리를 진행하는 형식입니다.
중첩 된 반복문은 단순 반복문에 비해서 특정한 의미를 가지는 경우가 대부분이었기 때문에 함수로 빼내서 사용하는 것이 훨씬 자연스럽게 느껴졌었던 것 같습니다.
"try finally"를 사용 할 수 있는 경우라면 리턴 값을 받아서 처리하지 않고, 하나의 함수 내에서 마무리를 함께 처리 할 수도 있습니다.
기타
다른 의견이 있는 분들도 알려주시면 감사하겠습니다.
초보 탈출 #2 - 멀티 스레드 프로그래밍의 1 (0) | 2019.12.01 |
---|---|
Episode #1 - 어려운 문제 조각내서 해결하기 (0) | 2019.11.24 |
인터페이스를 통한 소프트웨어 설계 (0) | 2014.09.15 |
재귀 호출 (2) | 2013.12.17 |
클래스 상속과 인터페이스 구현의 차이 #2 (6) | 2013.12.12 |