λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] CONTINUE, STOP, CHECK λž€? (μ‚¬μš© μ˜ˆμ‹œ 포함)

by Jay Din 2024. 5. 30.
728x90
λ°˜μ‘ν˜•

SAP ABAPμ—μ„œ `CONTINUE`, `STOP`, `CHECK`λŠ” 루프 처리 쀑 쑰건에 따라 νŠΉμ • 행동을 κ²°μ •ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

각 λͺ…λ Ήμ–΄λŠ” λ£¨ν”„μ˜ 흐름을 μ œμ–΄ν•˜λŠ”λ° 도움이 되며, 이λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄ μ˜ˆμ‹œμ™€ ν•¨κ»˜ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

μš”μ•½ 정리

COUTINUE ν˜„μž¬ λ°˜λ³΅μ„ κ±΄λ„ˆλ›°κ³ , λ‹€μŒ 반볡 μ‹€ν–‰
STOP ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑단
(루프가 μ•„λ‹ˆλΌ ν”„λ‘œκ·Έλž¨ μˆ˜μ€€μ—μ„œ μ‚¬μš©)
CHECK 쑰건이 `FALSE`인 경우 ν˜„μž¬ λ°˜λ³΅μ„ μ’…λ£Œν•˜κ³  λ‹€μŒ 반볡 μ‹€ν–‰

 

1. CONTINUE

`CONTINUE` λͺ…λ Ήμ–΄λŠ” ν˜„μž¬ λ£¨ν”„μ˜ λ°˜λ³΅μ„ μ’…λ£Œν•˜κ³ , λ‹€μŒ 반볡으둜 λ„˜μ–΄κ°‘λ‹ˆλ‹€.

ν˜„μž¬ 반볡 μ΄ν›„μ˜ λͺ¨λ“  μ½”λ“œλŠ” μ‹€ν–‰λ˜μ§€ μ•Šκ³  κ±΄λ„ˆλ›°κ²Œ λ©λ‹ˆλ‹€.

 

μ˜ˆμ‹œ

DO 10 TIMES.

  IF SY-INDEX MOD 2 EQ 0.
    CONTINUE.
  ENDIF.

  WRITE: / SY-INDEX.
ENDDO.

μ‹€ν–‰ν™”λ©΄

 

`SY-INDEX` λŠ” ν˜„μž¬ λ£¨ν”„μ˜ μ‹€ν–‰ 횟수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ‹œμŠ€ν…œ λ³€μˆ˜μž…λ‹ˆλ‹€.

μœ„ μ˜ˆμ‹œμ—μ„œ `SY-INDEX` κ°€ 짝수인 κ²½μš°μ—λŠ” `CONTINUE` λͺ…λ Ήμ–΄κ°€ μ‹€ν–‰λ˜μ–΄ ν˜„μž¬ λ°˜λ³΅μ„ κ±΄λ„ˆλ›°κ³  λ‹€μŒ 반볡으둜 λ„˜μ–΄κ°‘λ‹ˆλ‹€. λ”°λΌμ„œ,  μ§μˆ˜λŠ” 좜λ ₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

즉, CONTINUE 쑰건에 걸리면 LOOPλ‚΄μ˜ ν•˜μœ„ λ‘œμ§μ„ μˆ˜ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 

 

2. STOP

`STOP` λͺ…λ Ήμ–΄λŠ” 싀행을 쀑단 ν•©λ‹ˆλ‹€.

λ£¨ν”„μ—μ„œ μ‚¬μš©ν•˜λ©΄ ν˜„μž¬ λ£¨ν”„μ˜ 싀행을 μ¦‰μ‹œ μ€‘λ‹¨ν•˜κ³ , 루프 블둝을 λ²—μ–΄λ‚©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ,  주둜 리포트 ν”„λ‘œκ·Έλž¨μ˜ 싀행을 μ€‘λ‹¨ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

START-OF-SELECTION.

DO 10 TIMES.
  IF sy-index = 5.
    WRITE: / 'Stopping the loop at index 5'.
    STOP.
  ENDIF.
  WRITE: / 'Index:', sy-index.
ENDDO.

WRITE: / 'This line will not be executed if STOP is called above.'.


END-OF-SELECTION.
  WRITE: / 'END-OF-SELECTION'.

μ‹€ν–‰ν™”λ©΄

 

μœ„ μ˜ˆμ‹œμ—μ„œ `SY-INDEX` κ°€ 5일 λ•Œ `STOP` λͺ…λ Ήμ–΄κ°€ ν˜ΈμΆœλ˜μ–΄ `START-OF-SELECTION` ν•˜μœ„ ꡬ문을 λͺ¨λ‘ μ’…λ£Œ μ‹œν‚€κ³  κ³§λ°”λ‘œ `END-OF-SELECTION` 을 μ‹€ν–‰ν•©λ‹ˆλ‹€.

 

3. CHECK

`CHECK` λͺ…λ Ήμ–΄λŠ” 쑰건이 μΆ©μ‘±λ˜μ§€ μ•ŠμœΌλ©΄ ν˜„μž¬ λ£¨ν”„μ˜ λ°˜λ³΅μ„ μ’…λ£Œν•˜κ³ , λ‹€μŒ 반볡으둜 λ„˜μ–΄κ°‘λ‹ˆλ‹€.

`CHECK` λŠ” 주어진 쑰건이 `FALSE` 일 λ•Œ `CONTINUE` 와 λ™μΌν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

DO 10 TIMES.

  CHECK SY-INDEX MOD 2 = 1.   " ν™€μˆ˜μΈ 경우만 ν•˜μœ„ 둜직 좜λ ₯
  WRITE: / 'Odd number:', SY-INDEX.
  
ENDDO.

μ‹€ν–‰ν™”λ©΄

 

μœ„ μ˜ˆμ‹œμ—μ„œ `SY-INDEX` κ°€ ν™€μˆ˜μΈ κ²½μš°μ—λ§Œ `WRITE` 문이 μ‹€ν–‰λ©λ‹ˆλ‹€.

`SY-INDEX` κ°€  짝수인 경우 `CHECK` 쑰건이 `FLASE` κ°€ λ˜μ–΄ ν˜„μž¬ λ°˜λ³΅μ„ μ’…λ£Œν•˜κ³  λ‹€μŒ 반볡으둜 λ„˜μ–΄κ°‘λ‹ˆλ‹€.

 

 

728x90
λ°˜μ‘ν˜•