중첩 for 문의 이해 — 중첩 반복문, 바깥쪽 루프와 안쪽 루프, 구구단 전체 출력 | 기초 C언어 7.3.1
기초 C언어Chapter 07 반복문 › Section 03 다중 루프와 반복 흐름 제어
7.3.1 중첩 for 문의 이해
반복문 안에 또 다른 반복문을 넣은 중첩 for 문. 바깥쪽 루프 1회마다 안쪽 루프 전체가 실행되는 순서와 구구단 전체 출력 결과를 확인.
영상 목차 · 원하는 부분부터 보기
01반복 안에 반복을 넣는 구조교재 208p
- 앞 편까지 for·while·do-while 세 반복문을 모두 학습. 이번 편은 for 문 안에 for 문을 넣은 꼴에 초점.
- 중첩 반복문(Nested Loop) — 반복문 안에 또 다른 반복문이 포함된 구조. 반복해야 할 작업 자체가 또 다른 반복을 포함할 때 사용하는 프로그래밍 기법.
- 안쪽 반복문을 품고 있는 쪽이 바깥쪽 루프(Outer Loop), 그 안에 포함된 쪽이 안쪽 루프(Inner Loop). 중첩은 겹쳐 쌓는다는 뜻.
02시침과 분침으로 보는 핵심 원리교재 208p
- 바깥쪽 루프는 시침, 안쪽 루프는 분침에 해당. 시침이 한 칸 움직이는 1시간 동안 분침은 60칸을 모두 이동.
- 핵심 원리 — 바깥쪽 루프가 1번 반복할 때마다 안쪽 루프는 처음부터 끝까지 전체를 실행.
안쪽 루프는 매번 처음부터 시작
안쪽 for 문의 초기식 j = 1은 바깥쪽 루프가 한 번 돌 때마다 새로 실행됨. 그래서 j는 앞 회차의 값에서 이어지지 않고 매번 1로 돌아감.
03CODE 7.10의 두 루프교재 208p
- 바깥쪽 루프는 04~10줄, 제어 변수 i가 1부터 2까지 반복. 안쪽 루프는 06~08줄, 제어 변수 j가 1부터 3까지 반복.
- 안쪽 루프는 바깥쪽 루프의 중괄호 블록 안에 통째로 들어 있는 구조. 05줄의 시작 메시지와 09줄의 종료 메시지는 안쪽 루프 밖, 바깥쪽 루프 안에 위치.
- 상세 코드는 교재 CODE 7.10에서 확인.
04실행 결과로 본 i와 j의 순서교재 208~209p
| i 값 | 안쪽 루프의 j | 출력 묶음 |
|---|---|---|
| 1 | 1, 2, 3 전체 | 시작 · 실행 3줄 · 종료 |
| 2 | 다시 1, 2, 3 전체 | 시작 · 실행 3줄 · 종료 |
- 결과는 다섯 줄씩 두 묶음, 모두 열 줄. 안쪽 루프의 실행 메시지는 2 × 3, 곧 여섯 번 출력.
- i가 1일 때 j가 1, 2, 3까지 전체를 반복한 뒤에야 i가 2로 넘어감. 두 묶음 사이의 빈 줄은 09줄 출력문 끝의 줄바꿈 두 번에서 생긴 결과.
05구구단 전체 출력으로 확장교재 209~210p
- CODE 7.11 — 7.1.2의 CODE 7.3에서 dan을 7로 두고 7단만 출력하던 for 문을 안쪽 루프로 삼고, 바깥쪽에 dan을 바꾸는 for 문을 추가한 꼴.
- 바깥쪽 루프는 dan을 2부터 9까지 바꾸며 단의 값을 제어. 안쪽 루프는 각 단에 곱해지는 수 i를 1부터 9까지 제어.
- 결과는 단마다 머리 한 줄, 곱셈 아홉 줄, 빈 줄 하나. 교재 RESULT의 줄임표는 줄여 실은 표시이며, 실제로는 2단부터 9 * 9 = 81까지 모두 출력. 상세 코드는 교재 CODE 7.11.
변수 이름이 아니라 놓인 자리가 역할을 결정
CODE 7.10에서 i는 바깥쪽 루프의 제어 변수였지만, CODE 7.11에서는 안쪽 루프의 곱하는 수. 어느 for 문에 놓였는지가 역할을 정함. 빈 줄을 찍는 09줄도 안쪽 루프 밖에 있으므로 단마다 한 번만 실행됨.
062차원 배열로 이어지는 중첩 반복교재 210p
- 중첩 for 문의 역할 분담 — 바깥쪽 루프는 큰 단위(단), 안쪽 루프는 그 안의 세부 단위(곱하는 수)를 맡는 구조.
- 중첩 반복문은 8장에서 배울 2차원 배열의 데이터 처리에 필수적으로 사용. 동작 원리를 정확히 이해해 둘 필요.
- 이번 편은 반복 안에 반복을 넣는 구조까지. 다음 편에서는 반복을 도중에 끊는 break 문을 다룸.
이 절의 핵심 정리
- 중첩 반복문은 반복문 안에 또 다른 반복문이 포함된 구조이다.
- 바깥쪽 루프가 한 번 반복할 때마다 안쪽 루프는 처음부터 끝까지 전체를 실행한다.
- 안쪽 for 문의 초기식은 바깥쪽 루프가 돌 때마다 새로 실행되므로 안쪽 제어 변수는 매번 처음 값으로 돌아간다.
- 구구단 전체 출력에서 바깥쪽 루프는 단을, 안쪽 루프는 곱해지는 수를 제어한다.
- 중첩 반복문은 8장에서 배울 2차원 배열의 데이터를 처리하는 데 필수적으로 쓰인다.
강의 자료7.3.1 중첩 for 문의 이해
1 / 12
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기