1. DO ... ENDDO.

DO 5 TIMES.
  WRITE: / 'Hello'.
ENDDO.

지정한 횟수만큼 반복하는 구문

- 순환횟수를 지정할 수 있는 구문. 

- 회수를 지정하지 않으면 무한 LOOP수행

- 현재 순환횟수 시스템 변수는 SY-INDEX에 저장된다.

 

 

2. WHILE ... ENDWHILE.

DATA count TYPE i VALUE 1.

WHILE count <= 5.
  WRITE: / count.
  count = count + 1.
ENDWHILE.

조건이 참일 때 계속 반복

- WHILE구문의 다음 표현식이 참이면 반복순환을 지속함

- 현재 순환 횟수는 시스템 변수 SY-INDEX에 저장된다.

 

 

3. LOOP AT ... INTO ... ENDLOOP.

DATA: lt_text TYPE STANDARD TABLE OF string,
      lv_text TYPE string.

APPEND 'Hello' TO lt_text.
APPEND 'World' TO lt_text.

LOOP AT lt_text INTO lv_text.
  WRITE: / lv_text.
ENDLOOP.

- 인터널 테이블의 라인을 차례대로 Work AREA 또는 HEADER LINE으로 이동하는 순환구문

- 현재 순환횟수는 시스템 변수 SY-TABIX에 저장된다. SY-TABIX는 인터널 테이블의 라인 번호다.

주의할점:

- LOOP AT은 내부 테이블이 비어있으면 반복되지 않는다.

- DO 는 무한루프가 될 수 있어서 EXIT or 조건 처리가 필요하다

구문 용도
DO TIMES 정해진 횟수만큼 반복
WHILE 조건이 참인 동안 반복
LOOP AT 내부 테이블을 순서대로 반복

 

 

 

 

 

+ Recent posts