structured replacement

goto가 하려던 일을 더 좁은 제어문으로 바꾼다

대안은 “goto 금지”가 아니라 점프의 목적을 더 작은 구조로 이름 붙이는 것입니다.

점프 목적
대체 문장
적용 범위
구조가 좋아지는 이유
현재 루프를 끝낸다
break
가장 가까운 반복문이나 switch.
빠져나가는 범위가 문법으로 고정된다.
이번 반복만 건너뛴다
continue
같은 루프의 다음 반복.
아래 문장을 의도적으로 건너뛴다는 뜻이 남는다.
함수를 끝낸다
return
현재 함수.
출구가 함수 경계로 정리된다.
정리를 보장한다
RAII, 스코프 객체
자원 수명과 스코프.
점프 경로와 상관없이 소멸자가 정리를 맡는다.
여러 단계 탈출이 필요하다
함수 분리
반복문 바깥의 의미 있는 작업 단위.
return 하나로 탈출 이유를 표현한다.

goto는 도착지만 보이고 중간에 건너뛰는 초기화와 정리는 숨깁니다. 그래서 대안은 항상 “범위를 좁히는 방향”으로 고릅니다.