나중에 내가볼라고 쥐피티한테 정리해달라함.
ABAP에서 흐름을 제어할 때 자주 쓰는 다섯 개의 키워드 —
STOP, EXIT, RETURN, CHECK, CONTINUE
서로 비슷해 보여도 쓰임새가 다르다. 아래에서 차이를 확실하게 정리해보자.
## 🔍 키워드별 요약 정리
| 키워드 | 설명 |
|---|---|
CHECK | 조건이 거짓이면 현재 루프 반복을 skip (continue처럼 작동) |
CONTINUE | 조건에 따라 현재 루프의 나머지 실행을 건너뛰고 다음 루프로 |
EXIT | 현재 루프를 완전히 종료 |
RETURN | FORM, FUNCTION, METHOD 등 서브루틴에서 빠져나감 |
STOP | 전체 프로그램 실행 중단 (보통 테스트/디버깅 용도) |
## 📍 사용 위치 기준 비교
| 키워드 | 루프 내부 | 루프 외부 (FORM, METHOD 등) |
|---|---|---|
CHECK | ✅ 사용됨 | ❌ 의미 없음 |
CONTINUE | ✅ 사용됨 | ❌ 의미 없음 |
EXIT | ✅ 사용됨 | ❌ 루프 없으면 무의미 |
RETURN | ✅ 사용됨 | ✅ FORM/METHOD/FUNCTION에서 사용 |
STOP | ✅ 사용됨 | ✅ 전체 프로그램 종료 |
## ✅ 실전 예제로 익히기
DATA: lt_data TYPE STANDARD TABLE OF string,
lv_line TYPE string.
lt_data = VALUE #( ( 'A' ) ( 'B' ) ( 'SKIP' ) ( 'C' ) ( 'EXIT' ) ( 'D' ) ).
LOOP AT lt_data INTO lv_line.
" CHECK: 조건 불만족 시 루프 건너뜀
CHECK lv_line <> 'SKIP'.
" CONTINUE: 아래 코드를 skip하고 다음 루프로
IF lv_line = 'B'.
CONTINUE.
ENDIF.
" EXIT: 루프 자체 종료
IF lv_line = 'EXIT'.
EXIT.
ENDIF.
WRITE: / 'Line:', lv_line.
ENDLOOP.
상황 사용 키워드
조건 안 맞는 데이터는 건너뛰고 싶다 CHECK
특정 조건만 skip하고 루프는 계속 CONTINUE
루프 자체를 강제로 종료하고 싶다 EXIT
FORM, METHOD, FUNCTION을 중간에 끝내고 싶다 RETURN
전체 프로그램을 강제로 중단 (디버깅 등) STOP
CHECK 👉 입장 검사: 조건 안 맞으면 들어오지 마!
CONTINUE 👉 무대 입장했지만 이 씬은 skip!
EXIT 👉 공연 자체 중단!
RETURN 👉 역할 끝! backstage로 이동
STOP 👉 극장 전체 정전! 종료!
직접 루프 돌려가며 CHECK, CONTINUE, EXIT 동작을 실험해보기
RETURN, STOP은 FORM/METHOD 또는 메인 프로그램에서 테스트