goto 문

정의

  • 프로그램의 실행 흐름을 지정한 레이블(label) 위치로 즉시 무조건 이동시킨다.
  • 사용이 권장되지 않는다.

표현 방법

1
2
3
4
5
6
...
goto label;    // goto를 만나면
...

lable:         // 해당되는 label로 즉시 이동해
    statement  // 그 다음 문장을 실행시킨다.  

주의사항

  • goto 명령과 이동 목표지점 label은 동일한 블록에 있어야 한다.

예시

모범 사례

1
2
3
4
5
6
7
8
9
10
void something{
  int a = 1;
  goto some_label;
  a *= 20;

  some_label:
    a *= 10;
  
  printf("%d", a)
}
1
10

주의 - goto 와 label 이 동일 블럭에 있어야 한다.

1
2
3
4
5
6
7
8
9
10
11
void another() {
    some_label:
        printf("여기로 점프했습니다.\n");
}

void something(){
    int a = 1;
    goto some_label; // 에러 발생
    a *= 20;
    printf("%d", a);
}
  • label이 정의되지 않았음 에러 발생함

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments