✅ 핵심 요약: CHECK 문
📌 기본 동작
- CHECK 조건.
→ 조건이 거짓(FALSE) 이면, 해당 루프의 나머지 코드를 실행하지 않고 다음 루프로 건너뜀. → - 조건이 참(TRUE) 이면, 아래의 코드를 계속 실행함.
🔄 CHECK vs CONTINUE vs IF
구문동작 | 예시 | 상황 |
IF 조건. CONTINUE. ENDIF. | 조건이 맞을 때 다음 루프로 넘어감 | 조금 더 복잡한 조건이 필요할 때 |
CHECK 조건. | 조건이 거짓이면 다음 루프로 넘어감 | 간단한 조건일 때 코드가 더 간결해짐 |
IF 조건. (일반 실행) ENDIF. | 조건이 참일 때만 코드 실행 | 명확한 조건 분기 필요할 때 |
→ CHECK는 사실상 IF NOT 조건. CONTINUE. 와 같음.
🧪 예제 코드: 루프 내 CHECK
DO 10 TIMES.
CHECK sy-index MOD 2 = 0. "짝수만 출력
WRITE: / sy-index.
ENDDO.
🔍 결과
Loop: 1
Loop: 3
...
Loop: 15
→ 2번째 루프는 출력이 없음 → sy-index = 2일 때 CHECK sy-index <> 2. 조건은 거짓 → 다음 루프로 넘어감
⚠ CHECK의 위치에 따른 효과
1. ✅ 루프 안에 사용 → 해당 루프만 skip (마치 CONTINUE)
DO 10 TIMES.
CHECK sy-index MOD 2 = 0. "짝수만 출력
WRITE: / sy-index.
ENDDO.
2. ⚠ 루프 밖에서 사용 → 전체 프로그램 블록 종료
DATA a TYPE i VALUE 0.
CHECK a = 1. " 조건 안 맞음 → 전체 프로그램 종료
WRITE: / '이건 실행되지 않음'.
→ 루프 밖에서 CHECK 조건이 false이면 그 블록 자체를 종료하기 때문에 주의!
🧠 정리
- CHECK는 간단한 조건 필터링에 매우 유용함
- 루프 내에서는 CONTINUE 대용으로 자주 사용
- 루프 외부에서는 블록 종료 역할을 하므로 주의 필요
- 코드를 더 간결하게 만들 수 있어 ABAP 스타일로도 추천됨!
🔄 CONTINUE만 써도 되지 않을까?
사실 기능적으로는 CONTINUE 하나만 써도 가능하지않나?
다만, CHECK는 가독성과 간결함에서 큰 장점이 있다고 한다.
1. CHECK는 간단한 필터링 조건에 많이 사용됨.
LOOP AT it_employees INTO wa_emp.
CHECK wa_emp-department = 'IT'.
" 아래는 IT 부서에만 해당
WRITE: / wa_emp-name.
ENDLOOP.
→ 위 코드는 "IT 부서 아닌 사람은 걍 건너뛰어!" 라는 뜻인데, CHECK로 한 줄이면 끝남.
2. 똑같은 로직을 IF + CONTINUE로 쓰면:
LOOP AT it_employees INTO wa_emp.
IF wa_emp-department <> 'IT'.
CONTINUE.
ENDIF.
WRITE: / wa_emp-name.
ENDLOOP.
→ 동작은 똑같지만, 코드가 3줄임.
'SAP' 카테고리의 다른 글
SAP ABAP Programming for Beginners - 50 ABAP Report Program Flow (0) | 2025.04.12 |
---|---|
SAP ABAP Programming for Beginners - 49 Exit (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 47 Continue (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 46 Nested While Loops (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 46 While (0) | 2025.04.12 |