이 시간에는 goto문에 대해서 알아보도록 할 것입니다.
대부분의 프로그래밍에서는 goto문의 사용을 권장하고 있지는 않습니다.
제가 얕은 지식으로 알기로는 구조적으로 코딩하는 것에 장애물이 된다느니... 뭐 스파게티 코드라느니...
이런 말들이 있는데 그래도 알아 두시면 좋고, 엔피시 부분에서는 자주 사용되므로
이에 대해서 설명을 드리도록 하겠습니다.
1. goto문의 개념
먼저 goto문은 그대로 go to를 붙인 형태로 '이동' 의 개념이 강합니다.
주구장창 설명하는 것보다 예시를 보고 이해하는 것이 쉬울 거 같네요.
EX)
goto A;
("1"이라는 메시지를 띄운다)
A:
("2"라는 메시지를 띄운다)
위의 예제를 순서대로 읽어 내려오도록 해보죠.
첫번째 줄의 goto A; 는 'goto문을 사용해서 A라는 곳으로 이동하라' 라는 의미를 담고 있습니다.
그렇다면 두번째 줄을 거치지 않고 바로 A: 라고 써져 있는 세번째 줄로 이동한다는 뜻입니다.
그리고 마지막 줄인 "2"라는 메시지를 띄우고 스크립트는 종료되겠죠.
결론적으로 "1"이라는 메시지는 뜨지 않고 "2"라는 메시지만 뜨게 됩니다.
대충 goto문이 무슨 역할인지 이해가 가셨으면 좋겠네요.
주의할 점은 goto문 다음에 오는 이름(label, 위의 예제에서 A)은 꼭 아래에서
A: 식으로 언급이 되어야 하며, 이름(label)은 절대로 겹쳐서는 안된다는 점입니다.
위를 어기면 서버 내에서 오류가 나므로 꼭 주의하셔야 됩니다.
2. goto문의 응용
그렇다면 이러한 goto문은 어느 부분에 응용될 수 있을까요?
개인이 사용하기에 따라 다양한 부분에 응용될 수 있겠지만, 제가 생각했을 때 유용하다 싶은 부분을 알려드리겠습니다.
먼저, 반복문의 탈출에 사용될 수 있습니다.
따로 반복문에 대한 강의를 한 적은 없지만, 다른 분들이 쓰신 반복문의 강의를 보시면
반복문이 대충 어떻게 동작하는지, 어떠한 형태로 사용되는지 알고 계실 것입니다.
(추후에 반복문에 대한 강의가 올라오면 이를 참고해서 보시는 것을 추천드립니다.)
이 반복문 내부에서 해당 조건을 만족하는 경우 goto문으로 반복문 밖으로 이동시킨다면
반복문은 더 이상 실행되지 않고 스크립트는 goto문 다음 라인을 읽게 됩니다.
뭐 너무 다양한 분야에 응용될 수 있는 함수인지라 대표적인 예를 더 들 수가 없네요