goto alternatives

goto 대체 기준

직접 점프가 필요한 것처럼 보여도 반복 제어, 함수 분리, 상태 플래그로 의도를 더 읽기 쉽게 표현할 수 있다.

반복

반복 안 이동

continue 또는 break로 의도를 블록 안에 둔다.

nested

중첩 루프 탈출

플래그나 함수 return으로 여러 루프를 정리한다.

cleanup

정리 필요

RAII와 스코프를 이용해 해제를 자동화한다.

legacy

레거시 goto

새로 쓰기보다 도착 지점과 자원 상태를 먼저 읽는다.

break

가장 가까운 루프 종료

반복을 멈추는 위치가 코드 구조에 남는다.

return

함수 단위 종료

복잡한 탐색은 함수로 분리하면 탈출이 단순해진다.

bool found

상태로 흐름 제어

여러 단계의 중단 조건을 명시적으로 전달한다.

최종 기준 goto가 더 짧아 보여도 실행 경로와 정리 책임이 흐려지면 유지보수 비용이 커진다.