ABAP에서 STOP, EXIT, RETURN, CHECK, CONTINUE 차이점과 올바른 사용방법

SAP ABAP 프로그램에서 반복문(LOOP)을 제어하기 위해 사용하는 구문으로 STOP, EXIT, RETURN, CHECK, CONTINUE 등이 있습니다.

참고로 ABAP의 반복문 중 DO 반복문에 대한 설명은 ABAP에서 DO 반복문(DO~ENDDO) 사용 방법 글을 참고하시고, WHILE 반복문에 대한 설명은 ABAP에서 WHILE 반복문(WHILE~ENDWHILE) 사용 방법 글을 참고하시기 바랍니다.

각 구문마다 반복문을 제어하는데 약간의 차이점이 있습니다. 사용하는 구문에 따라 이후 구문의 실행 여부에도 영향을 미치게 됩니다.

상황에 맞게 적절한 제어 구문을 사용할 때 정확한 실행 결과를 얻을 수 있습니다.

이번 글에서는 ABAP에서 STOP, EXIT, RETURN, CHECK, CONTINUE 차이점과 올바른 사용 방법에 대해 알아보겠습니다.

SAP ABAP에서 STOP 사용 방법

  • STOP 문은 실행 가능한 프로그램과 ‘AT SELECTION-SCREEN’, ‘START-OF-SELECTION’, ‘GET’ 이벤트 블록 처리를 중지하는데 사용됩니다.
  • ‘START-OF-SELECTION’ 이벤트 블록에서 STOP 문을 만나게 되면 이벤트가 종료되고 ‘END-OF-SELECTION’ 이벤트로 트리거합니다.
REPORT  YMM0001 MESSAGE-ID ZCA001.
 
 
START-OF-SELECTION.
 
  DO 10 TIMES.
    IF SY-INDEX = 5.
      STOP.
    ENDIF.
 
    WRITE AT / SY-INDEX.
  ENDDO.
 
  PERFORM NEXT_FORM.
 
END-OF-SELECTION.
 
  WRITE AT / ‘End Of Selection’.
 
 
*&———————————————————————*
*&      Form  NEXT_FORM
*&———————————————————————*
FORM NEXT_FORM .
 
  WRITE AT / ‘Next Form’.
 
ENDFORM.                    ” NEXT_FORM
 

STOP 문을 만나게 되면 실행중인 이벤트는 종료되고 다음 이벤트를 수행하게 됩니다.

위의 예제에서는 STOP문이 실행되는 시점에 START-OF-SELECTION 이벤트가 종료되고, END-OF-SELECTION 이벤트가 실행되어 집니다.

SAP ABAP에서 STOP 사용 방법

SAP ABAP에서 EXIT 사용 방법

  • LOOP .. ENDLOOP. 와 같이 반복문 내에 기술하면 루프에서 나오게 됩니다.
  • IF .. ENDIF. 안에 기술하면 프로그램 밖으로 나오게 됩니다.
  • FORM .. ENDFORM. 내부에 EXIT를 사용하면 FORM(서브루틴) 밖으로 나오게 됩니다.
  • 현재 반복문(LOOP) 프로세스를 종료하고 반복문을 빠져나온 뒤 다음 구문을 수행합니다.
REPORT  YMM0001 MESSAGE-ID ZCA001.
 
 
START-OF-SELECTION.
 
  DO 10 TIMES.
    IF SY-INDEX = 5.
     EXIT.
    ENDIF.
 
    WRITE AT / SY-INDEX.
  ENDDO.
 
  PERFORM NEXT_FORM.
 
END-OF-SELECTION.
 
  WRITE AT / ‘End Of Selection’.
 
 
*&———————————————————————*
*&      Form  NEXT_FORM
*&———————————————————————*
FORM NEXT_FORM .
 
  WRITE AT / ‘Next Form’.
 
ENDFORM.                    ” NEXT_FORM
 

EXIT 문을 만나게 되면 루프문을 빠져나오게 됩니다. 루프문 이후 구문과 다음 이벤트가 순차적으로 실행됩니다.

SAP ABAP에서 EXIT 사용 방법

SAP ABAP에서 RETURN 사용 방법

  • RETURN 문은 현재 처리 블록을 즉시 종료합니다.
  • RETURN 뒤에 수행되는 ABAP 구문은 더 이상 수행되지 않습니다.
REPORT  YMM0001 MESSAGE-ID ZCA001.
 
 
START-OF-SELECTION.
 
  DO 10 TIMES.
    IF SY-INDEX = 5.
     RETURN.
    ENDIF.
 
    WRITE AT / SY-INDEX.
  ENDDO.
 
  PERFORM NEXT_FORM.
 
END-OF-SELECTION.
 
  WRITE AT / ‘End Of Selection’.
 
 
*&———————————————————————*
*&      Form  NEXT_FORM
*&———————————————————————*
FORM NEXT_FORM .
 
  WRITE AT / ‘Next Form’.
 
ENDFORM.                    ” NEXT_FORM
 

RETURN 문을 만나게 되면 이후 작업은 모두 수행되지 않고 종료됩니다.

SAP ABAP에서 RETURN 사용 방법

SAP ABAP에서 CHECK 사용 방법

CHECK 문은 log_exp에 대한 논리식이 False이면 현재 처리 블록을 종료합니다.

REPORT  YMM0001 MESSAGE-ID ZCA001.
 
 
START-OF-SELECTION.
 
  DO 10 TIMES.

    CHECK SY-INDEX < 5.
     
    WRITE AT / SY-INDEX.
  ENDDO.
 
  PERFORM NEXT_FORM.
 
END-OF-SELECTION.
 
  WRITE AT / ‘End Of Selection’.
 
 
*&———————————————————————*
*&      Form  NEXT_FORM
*&———————————————————————*
FORM NEXT_FORM .
 
  WRITE AT / ‘Next Form’.
 
ENDFORM.                    ” NEXT_FORM
 

CHECK 문에 있는 논리식이 참(True)인 경우 다음 구문을 실행하게 됩니다.

예제에서는 5보다 작은 경우에 다음 구문인 WRITE문을 수행하게 됩니다.

SAP ABAP에서 CHECK 사용 방법

SAP ABAP에서 CONTINUE 사용 방법

  • CONTINUE 문은 반복문(LOOP)에서만 사용할 수 있습니다.
  • CONTINUE 문을 만나게 되면 현재 루프는 패스하고 다음 루프 패스로 계속 진행합니다.
REPORT  YMM0001 MESSAGE-ID ZCA001.
 
 
START-OF-SELECTION.
 
  DO 10 TIMES.
   IF SY-INDEX < 5.
      CONTINUE.
    ENDIF.
 
    WRITE AT / SY-INDEX.
  ENDDO.
 
  PERFORM NEXT_FORM.
 
END-OF-SELECTION.
 
  WRITE AT / ‘End Of Selection’.
 
 
*&———————————————————————*
*&      Form  NEXT_FORM
*&———————————————————————*
FORM NEXT_FORM .
 
  WRITE AT / ‘Next Form’.
 
ENDFORM.                    ” NEXT_FORM
 

SY-INDEX가 5보다 작을 동안 CONTINUE 문을 만나 다음 단계의 루프 패스를 진행하게 됩니다.

따라서 5 이상일 경우에만 다음 구문이 실행됩니다.

SAP ABAP에서 CONTINUE 사용 방법





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기