SAP/ABAP ๋ฌธ๋ฒ | Open SQL
[SAP] ๋ฐ๋ณต๋ฌธ DO, WHILE
์ธํฌ๋งํฑ
2025. 1. 30. 22:00
ABAP์์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ตํ๋ฉด ๋ค์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ก์ง ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ DO, WHILE ๋ฐ๋ณต๋ฌธ์ ์์๋ณด๊ฒ ์ต๋๋ค.
1. DO ๋ฐ๋ณต๋ฌธ
DO ๋ฐ๋ณต๋ฌธ์ ํน์ ํ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
1) ๋ฌดํ ๋ฃจํ ์ข ๋ฃ (DO ... IF EXIT.)
DO ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๋ EXIT ๋ฌธ์ ํ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์์ ๋ฃจํ๋ฅผ ์ข ๋ฃํ ์ ์์ต๋๋ค.
DATA lv_count TYPE i VALUE 0.
DO.
lv_count = lv_count + 1.
WRITE: / '๋ฐ๋ณต ํ์:', lv_count.
IF lv_count >= 5.
EXIT.
ENDIF.
ENDDO.
์์ ์์ lv_count ๊ฐ์ด 5 ์ด์์ด ๋๋ฉด ๋ฃจํ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
2) ๋ฃจํ ํ์ ์ง์ (DO 10 TIMES.)
๋ฐ๋ณต ํ์๋ฅผ ๋ฏธ๋ฆฌ ์ ํด๋๊ณ ์คํํ ์๋ ์์ต๋๋ค.
DO 10 TIMES.
WRITE: / 'ํ์ฌ ๋ฐ๋ณต ํ์:', SY-INDEX.
ENDDO.
์ ์ฝ๋๋ 10๋ฒ ๋ฐ๋ณต๋๋ฉฐ, SY-INDEX๋ ํ์ฌ ๋ฐ๋ณต ํ์๋ฅผ ๋ํ๋ ๋๋ค.
2. WHILE ๋ฐ๋ณต๋ฌธ
WHILE ๋ฌธ์ ํน์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ ๋์ ๋ฃจํ๋ฅผ ์คํํฉ๋๋ค.
DATA lv_number TYPE i VALUE 1.
WHILE lv_number <= 5.
WRITE: / 'ํ์ฌ ๊ฐ:', lv_number.
lv_number = lv_number + 1.
ENDWHILE.
์ ์ฝ๋๋ lv_number๊ฐ 5 ์ดํ์ผ ๋๊น์ง ์คํ๋ฉ๋๋ค.