SAP/ABAP
[SAP ABAP] ABAP 루프문(Loops) - DO, DO n TIMES, WHILE, SELECT ... ENDSELECT, LOOP AT ... ENDLOOP
로블리제
2024. 7. 22. 11:12
1. DO 루프
애는 계속 무한반복을 하게 된다. 그래서 IF 문을 사용해서 EXIT를 사용해 빠져나올 수 있게 해줘야 한다. 특정 조건에 만족하면 해당 루프를 빠져 나오게끔 처리해줘야한다.
대부분 그거를 IF로 조건이 맞으면 빠져나와 라는 구문을 써준다.
abap코드 복사
DO.
Statements
IF <abort_condition>.
EXIT.
ENDIF.
ENDDO.
- 설명: DO ... ENDDO 구조는 무한 루프입니다. EXIT 문을 사용하여 특정 조건(<abort_condition>)이 만족되면 루프를 빠져나갑니다.
- Loop Counter: sy-index 시스템 변수가 루프의 반복 횟수를 카운트합니다.
2. DO n TIMES 루프
n 자리에 반복하고자 하는 숫자 또는 변수를 입력한다. 그러면 n번만큼 반복하게 된다.
abap코드 복사
DO n TIMES.
Statements
ENDDO.
- 설명: 루프를 n번 반복합니다.
- Loop Counter: sy-index 시스템 변수가 루프의 반복 횟수를 카운트합니다.
3. WHILE 루프
while - endwhile
조건이 참이면 반복을 하고 거짓이면 반복 중단을 한다.
abap코드 복사
WHILE <condition>.
Statements
ENDWHILE.
- 설명: 주어진 조건이 참(true)인 동안 루프를 반복합니다.
- Loop Counter: sy-index 시스템 변수가 루프의 반복 횟수를 카운트합니다.
4. SELECT ... ENDSELECT 루프
abap코드 복사
SELECT ... FROM <dbtab> ...
Statements
ENDSELECT.
- 설명: 데이터베이스 테이블에서 데이터를 선택하여 각 행에 대해 루프를 실행합니다.
- Database Table Rows: sy-dbcnt 시스템 변수가 선택된 행(row)의 수를 카운트합니다.
5. LOOP AT <internal table> ... ENDLOOP
abap코드 복사
LOOP AT <internal table> ...
Statements
ENDLOOP.
- 설명: 내부 테이블의 각 행에 대해 루프를 실행합니다.
- Row Index for Internal Table: sy-tabix 시스템 변수가 내부 테이블에서 현재 행(row)의 인덱스를 나타냅니다.
정리
- DO 루프: 무한 루프. EXIT를 사용해 조건을 만족할 때 빠져나옵니다. 루프 횟수는 sy-index로 카운트.
- DO n TIMES 루프: n번 반복하는 루프. 루프 횟수는 sy-index로 카운트.
- WHILE 루프: 조건이 참인 동안 반복하는 루프. 루프 횟수는 sy-index로 카운트.
- SELECT ... ENDSELECT 루프: 데이터베이스 테이블의 각 행에 대해 반복. 선택된 행의 수는 sy-dbcnt로 카운트.
- LOOP AT <internal table> ... ENDLOOP: 내부 테이블의 각 행에 대해 반복. 현재 행의 인덱스는 sy-tabix로 나타냅니다.