📘 Loop문 (Do & While)
✅ ABAP에서 사용할 수 있는 Loop문 종류
- DO 구문
- DO n TIMES 구문
- WHILE 구문
- LOOP AT 구문 (Internal Table 반복)
📍 1. DO 구문
DO 구문은 무한 반복을 수행하는 루프문이다.
- 반복문 안에 조건문(IF)을 사용하여, 제어장치(EXIT)를 만들어야 한다.
- 특정 조건이 충족되었을 때 EXIT 구문을 통해 루프를 종료할 수 있다.
➡️ 구문 구조:
DO.
IF <조건>.
EXIT.
ENDIF.
Statements.
ENDDO.
💡 설명:
- DO. → 루프 시작
- IF <조건>. → 조건이 충족되면 EXIT를 통해 루프 종료
- ENDDO. → 루프 종료
➡️ 예시:
DATA: lv_count TYPE i VALUE 0.
DO.
lv_count = lv_count + 1.
IF lv_count >= 5.
EXIT.
ENDIF.
WRITE: / lv_count.
ENDDO.
💡 결과:
- 1부터 5까지 출력 후 루프 종료
📍 2. DO n TIMES 구문
DO n TIMES 구문은 n번 반복하는 루프문이다.
- 루프가 몇 번 반복될지를 미리 설정할 수 있다.
- sy-index 시스템 필드를 사용하여 현재 루프 카운터 값을 확인할 수 있다.
➡️ 구문 구조:
DO 5 TIMES.
Statements.
ENDDO.
💡 설명:
- DO 5 TIMES. → 루프를 5번 반복
- sy-index → 현재 반복 횟수를 나타내는 시스템 필드
➡️ 예시:
DO 3 TIMES.
WRITE: / 'Loop count:', sy-index.
ENDDO.
💡 결과:
- Loop count: 1
- Loop count: 2
- Loop count: 3
📍 3. WHILE 구문
WHILE 구문은 조건이 참일 동안 반복을 수행한다.
- 조건이 False가 되면 루프가 종료된다.
- 조건에 따라 루프가 0번 이상 반복될 수 있다.
➡️ 구문 구조:
WHILE <조건>.
Statements.
ENDWHILE.
💡 설명:
- WHILE <조건>. → 조건이 참일 때 루프 실행
- ENDWHILE. → 루프 종료
➡️ 예시:
DATA: lv_num TYPE i VALUE 1.
WHILE lv_num <= 5.
WRITE: / lv_num.
lv_num = lv_num + 1.
ENDWHILE.
💡 결과:
- 1
- 2
- 3
- 4
- 5
📍 4. LOOP AT 구문 (Internal Table 반복)
LOOP AT 구문은 Internal Table의 행(Row)을 순차적으로 반복 처리할 때 사용한다.
- 루프가 실행될 때마다 현재 행의 데이터가 변수에 할당된다.
- sy-tabix 시스템 필드를 사용하여 현재 행 인덱스 값을 확인할 수 있다.
➡️ 구문 구조:
LOOP AT <Internal Table> INTO <Work Area>.
Statements.
ENDLOOP.
💡 설명:
- LOOP AT → Internal Table에서 반복 시작
- sy-tabix → 현재 반복 중인 행의 인덱스 값
➡️ 예시:
DATA: lt_table TYPE TABLE OF i WITH HEADER LINE,
lv_value TYPE i.
APPEND 10 TO lt_table.
APPEND 20 TO lt_table.
APPEND 30 TO lt_table.
LOOP AT lt_table INTO lv_value.
WRITE: / 'Row:', sy-tabix, 'Value:', lv_value.
ENDLOOP.
💡 결과:
- Row: 1 Value: 10
- Row: 2 Value: 20
- Row: 3 Value: 30
✅ Loop문 요약
구문 종류 설명 사용 예시
DO | 무한 반복. 조건문(IF)을 통해 종료 | DO. IF <조건>. EXIT. |
DO n TIMES | n번 반복 | DO 5 TIMES. |
WHILE | 조건이 참일 동안 반복 | WHILE lv_num <= 5. |
LOOP AT | Internal Table의 행(Row) 반복 처리 | LOOP AT lt_table INTO. |
✅ 중요 시스템 필드 (System Fields)
System Field 설명
sy-index | DO와 WHILE 루프의 현재 반복 횟수 |
sy-dbcnt | SELECT-ENDSELECT에서 가져온 데이터 개수 |
sy-tabix | Internal Table에서 현재 행 인덱스 값 |
💡 Tip:
1️⃣ DO 구문에서는 반드시 조건문(IF)을 사용하여 EXIT 구문을 통해 루프 종료 조건을 만들어야 한다.
2️⃣ DO n TIMES 구문은 반복 횟수가 고정되어 있을 때 사용한다.
3️⃣ WHILE 구문은 조건에 따라 반복 횟수가 가변적일 때 사용한다.
4️⃣ LOOP AT 구문은 Internal Table을 반복 처리할 때 자주 사용된다.
✅ 시스템 오류 Return code of an ABAP Statement
'SAP ABAP > 기본' 카테고리의 다른 글
오류 수정 - ABAP Debugger 사용법 (0) | 2025.01.15 |
---|---|
메시지 클래스 - Dialog Messages (0) | 2025.01.15 |
ABAP Statements | IF 조건문 (0) | 2025.01.15 |
ABAP Statements 정리 | Calculation (0) | 2025.01.15 |
ABAP Transaction Code 생성 및 관리 (0) | 2025.01.10 |