ABAP에서 조건을 평가할 때 IF 문을 사용하며, 자바와 유사하게 ELSEIF, ELSE를 사용할 수 있다. 다만, ENDIF로 블록을 종료해야 한다.
사용 상황: 특정 조건에 따라 다른 로직을 실행하고자 할 때 사용된다. 예를 들어, 데이터베이스에서 조회한 결과에 따라 다른 처리를 할 때 유용한다.
IF lv_value > 100.
WRITE: '값이 100보다 큽니다.'.
ELSEIF lv_value = 100.
WRITE: '값이 정확히 100입니다.'.
ELSE.
WRITE: '값이 100보다 작습니다.'.
ENDIF.
CASE 문은 하나의 변수를 여러 값과 비교할 때 사용된다. 자바의 switch와 동일한 역할을 한다.
사용 상황: 단일 조건이 여러 값 중 하나에 해당할 때 다양한 처리를 하기 위해 사용된다. 특히 코드의 가독성을 높이는 데 유리하다.
CASE lv_status.
WHEN 'A'.
WRITE: '상태 A입니다.'.
WHEN 'B'.
WRITE: '상태 B입니다.'.
WHEN OTHERS.
WRITE: '알 수 없는 상태입니다.'.
ENDCASE.
LOOP AT은 내부 테이블을 순회하는 데 사용된다. 자바의 for-each와 유사하게, 내부 테이블의 각 행을 가져와 처리할 수 있다.
사용 상황: 데이터베이스에서 조회한 결과나, 여러 행의 데이터를 순차적으로 처리할 때 사용된다.
LOOP AT lt_table INTO ls_line.
WRITE: / ls_line.
ENDLOOP.
DO는 고정된 횟수만큼 반복할 때 사용된다. 자바의 for 문과 유사하지만, 종료 조건 없이 횟수만 지정하는 방식이다.
사용 상황: 일정 횟수만큼 반복하여 작업을 수행해야 할 때 유용하다. 예를 들어, 10번의 시도 내에서 작업을 완료하려는 상황에서 사용될 수 있다.
DO 10 TIMES.
WRITE: / '반복 횟수:', sy-index.
ENDDO.