C++ 'goto' Statement

smsh0722·2일 전

기타 정리

목록 보기
7/7

C++ goto Statement

goto는 프로그램 흐름을 같은 함수 안의 Label (레이블)로 강제로 이동시키는 Unconditional Jump (무조건 분기) 문이다.

문법

goto label;

// 중간 코드 생략

label:
    // 여기서 계속 실행

레이블은 goto보다 앞이나 뒤에 둘 수 있다. 같은 함수 안에서만 이동 가능하다.

예시

cout << "A";

goto skip;

cout << "B";   // 실행 안 됨

skip:
cout << "C";

출력:

AC

특징

  • Label은 함수 내부에서 유일해야 함
  • 다른 함수로 goto할 수 없음
  • 뒤쪽뿐 아니라 앞쪽 Label로도 이동 가능 → Loop (반복문)처럼 동작 가능

단점

goto가 많아지면 실행 흐름이 비선형적으로 꼬여 Spaghetti Code (스파게티 코드)가 되기 쉽다.

따라서 일반적으로:

goto
→ 가능하면 피함

대신
→ if / loop / function / exception 등을 사용

오류 처리처럼 일부 상황에서 사용할 수 있지만, 대부분 더 구조적인 방법으로 대체할 수 있다.

0개의 댓글