*&---------------------------------------------------------------------*
*& Report Z_ITERATIONS_1 *
*&---------------------------------------------------------------------*
REPORT z_iterations_1.
TABLES: zemployees.
" 특정 조건으로 SELECT 반복
SELECT * FROM zemployees WHERE surname = 'MILLS'.
WRITE: / zemployees.
ENDSELECT.
DATA: a TYPE i,
b TYPE i,
c TYPE i.
a = 0.
c = 0.
" -----------------------------
" DO 루프 예제
DO 15 TIMES.
a = a + 1.
WRITE: / 'Outer Loop cycle: ', a.
b = 0.
DO 10 TIMES.
b = b + 1.
WRITE: / 'Inner Loop cycle: ', b.
ENDDO.
c = c + b.
ENDDO.
c = c + a.
WRITE: / 'Total Iterations (DO): ', c.
" -----------------------------
" WHILE 루프 예제
a = 0.
b = 0.
c = 0.
WHILE a <> 15.
a = a + 1.
WRITE: / 'Outer Loop cycle: ', a.
b = 0.
WHILE b <> 10.
b = b + 1.
WRITE: / 'Inner Loop cycle: ', b.
ENDWHILE.
c = c + b.
ENDWHILE.
c = c + a.
WRITE: / 'Total Iterations (WHILE): ', c.
🧪 실행 시 예시 출력
Outer Loop cycle: 1
Inner Loop cycle: 1
Inner Loop cycle: 2
...
Outer Loop cycle: 15
Inner Loop cycle: 10
Total Iterations (DO): 165
Outer Loop cycle: 1
Inner Loop cycle: 1
...
Total Iterations (WHILE): 165
✅ 핵심 요약
🌱 변수 설명
- a: 바깥(outer) 루프의 카운터
- b: 안쪽(inner) 루프의 카운터
- c: 전체 반복 횟수를 누적한 값
🔁 루프 흐름 정리
- a를 기준으로 바깥 while 루프를 실행
WHILE a < 15. - 바깥 루프 안에서:
- b를 0으로 초기화
- WHILE b < 10인 동안:
- b를 출력
- b를 증가
- c = c + b 로 누적합 추가
- 안쪽 루프가 끝나면:
- a 값을 1 증가
- c = c + a 로 추가 누적
- 최종적으로 c는 전체 루프 횟수를 반영하며 출력됨.
🧮 실행 결과 예시
- 바깥 루프는 a가 0부터 14까지 총 15번
- 안쪽 루프는 매번 b가 0부터 9까지 총 10번 실행
- 그래서 총 반복 횟수는: 15 * 10 = 150
- 각 루프에서 c에 값을 누적시키므로, 결과는 단순히 150이 아니라 각 b와 a의 합이 누적된 165가 출력됨 (코드에서 그처럼 설정됨)
✅ 주의할 점
- b를 매 바깥 루프 안에서 초기화하는 이유: 매번 0부터 시작하려고
- b = b + 1 없으면 무한 루프 발생!
- WHILE 문은 조건이 만족할 때만 실행하므로 조건을 잘 설계해야 함
'SAP' 카테고리의 다른 글
SAPSAP ABAP Programming for Beginners - 48 Check (0) | 2025.04.12 |
---|---|
SAP ABAP Programming for Beginners - 47 Continue (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 46 While (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 45 Nested Do Loops (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 44 Do Loop (0) | 2025.04.12 |