제어 흐름

goto 문은 label로 실행 위치를 직접 옮긴다

goto는 같은 함수 안의 label로 즉시 점프합니다. 강력하지만 실행 순서가 코드의 위아래 흐름과 달라지므로, 새 코드에서는 먼저 구조적인 대안을 검토하는 편이 안전합니다.

label 점프 흐름

START: count++; if (count <= 3) goto START;
1

실행 중 조건을 만나면 goto 문장이 label 이름을 찾습니다.

2

제어 흐름은 label이 붙은 줄로 이동하고, 그 지점부터 다시 실행됩니다.

3

반복, 탈출, 오류 처리처럼 보일 수 있지만 구조가 코드 블록에 드러나지 않습니다.

먼저 검토할 대안

반복 제어

loop, break, continue로 반복 의도를 블록 구조 안에 남깁니다.

함수 분리

복잡한 탐색이나 조건 처리는 함수로 나누고 early return으로 종료합니다.

제한적 이해

예외적인 저수준 처리나 레거시 코드에서 만날 수 있으므로, 새로 쓰기보다 의도를 읽는 관점으로 접근합니다.