SAP ABAP/기본

ABAP Statements | Loop문 (Do & While), 시스템 오류

물꼬_ 2025. 1. 15. 19:35

📘 Loop문 (Do & While)


ABAP에서 사용할 수 있는 Loop문 종류

  1. DO 구문
  2. DO n TIMES 구문
  3. WHILE 구문
  4. 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