ABAP에서 반복문은 데이터 테이블, 내부 테이블, 또는 다른 범위의 데이터를 효율적으로 처리하기 위해 사용된다. 주요 반복문 유형에는 LOOP, WHILE, DO 가 있다.
반복문을 사용하기 전 Internal Table 에 대한 개념을 먼저 익히는 것이 좋다. 왜냐하면 반복문 중 LOOP AT 이 Internal Table 내부의 라인 데이터를 돌리는 경우에도 자주 쓰이기 때문이다.
ABAP 기초 포스팅
변수 선언과 데이터 타입
Structure (구조체) 타입 변수 선언
TYPES 구문을 통한 타입 정의
Internal Table 개념, 사용법 정리
반복문 LOOP, WHILE, DO
콘텐츠
LOOP AT
가장 일반적으로 사용되는 반복문으로, 내부 테이블의 모든 행을 반복 적으로 처리한다.
LOOP AT itab INTO wa 형태로 사용되며, itab은 반복할 내부 테이블, wa는 해당 행의 데이터를 저장할 워크 영역이다. ENDLOOP로 종료된다. itab 과 wa 이야기는 이전 포스팅 Internal Table 개념, 사용법 정리 에 정리 되어 있다.
예시 코드:
DATA: BEGIN OF itab OCCURS 0,
name TYPE string,
END OF itab.
DATA wa LIKE LINE OF itab.
itab-name = 'Alice'.
APPEND itab.
itab-name = 'Bob'.
APPEND itab.
LOOP AT itab INTO wa.
WRITE: / wa-name.
ENDLOOP.
ABAP이 코드는 itab 내부 테이블을 순회하면서 각 행의 name 필드를 출력한다.
순서대로 Alice, Bob 이 출력 될 것이다.
WHILE
특정 조건이 참인 동안 반복 실행된다. WHILE condition 으로 시작해 ENDWHILE 로 끝난다.
예시 코드:
DATA: counter TYPE i VALUE 0.
WHILE counter < 5.
WRITE: / 'Counter is:', counter.
counter = counter + 1.
ENDWHILE.
ABAP이 코드는 counter 변수가 5보다 작은 동안 반복 실행되며, 반복할 때마다 counter 값을 1씩 증가시킨다.
DO
지정된 횟수만큼 코드 블록을 반복 실행한다. DO n TIMES 형태로 사용되며, n
은 반복 횟수를 지정한다. ENDDO로 종료된다.
예시 코드:
DATA: idx TYPE i VALUE 1.
DO 3 TIMES.
WRITE: / 'Iteration', idx.
idx = idx + 1.
ENDDO.
ABAP이 코드는 DO 3 TIMES 구문을 사용하여 루프를 3번 반복 실행한다. 각 반복에서 idx 값을 출력하고 1씩 증가 시킨다.
반복문 내 제어문
반복문 내에서 EXIT, CONTINUE, CHECK 같은 제어 문을 사용하여 반복의 흐름을 조절할 수 있다.
- EXIT: 반복문을 즉시 종료시킨다.
- CONTINUE: 현재 반복의 나머지 부분을 건너뛰고 다음 반복으로 넘어간다.
- CHECK: 특정 조건을 충족하지 않을 때 현재 반복의 나머지 부분을 건너뛰게 한다.