goto 명령문을 사용하면 간단한 반복 실행을 만들 수 있다.
반복 실행 부분을 빠져나오기 위해(즉 무한 반복을 방지하기 위해) 반복 실행 되는 도중에 조건을 검사해야 한다.
goto 이름:
이 명령은 이름:
이 작성된 곳으로 프로그램의 실행 흐름을 바꾸어 준다.
"이름:
" 과 같이 콜론(:)이 붙어있는 부분을 이름표(label, 레이블)라고 한다.
switch( ) ... case ... : ... break; 에서
case ... : 도 일종의 레이블이라고 생각할 수 있다.
goto 레이블:
명령을 사용하면 반복되는 부분을 여러 개 자유롭게 만들 수 있다.
goto 명령은 반복 실행을 만들어낼 수 있는 가장 간단한 명령이지만, 복잡하게(스파게티 코드) 사용하는 경우, 이해가 어렵고 오류가 생기기 쉽다.
int n;
reload: //레이블은 콜론(:)으로 끝내고, 일반적으로 들여쓰기를 하지 않는다.
scanf("%d", &n);
printf("%d", n);
if(n!=0) goto reload; //reload라고 적혀있는 레이블로 실행 이동