✅ 1. 이중 반복문이란?
for(int i=1; i<=3; i++){
for(int j=1; j<=5; j++){
printf("%d %d\n", i, j);
}
}
👉 구조:
for (바깥 반복문) {
for (안쪽 반복문) {
실행문
}
}
👉 정의:
🔥 반복문 안에 또 다른 반복문이 있는 구조
✅ 2. 실행 원리 (핵심🔥)
👉 가장 중요한 한 줄:
❗ “바깥 반복문 1번 → 안쪽 반복문 전체 실행”
✅ 흐름
i = 1
→ j = 1~5 전부 실행
i = 2
→ j = 1~5 전부 실행
i = 3
→ j = 1~5 전부 실행
✅ 3. 코드 예제 (1번)
for(int i=1; i<=3;i++){
printf("첫 번째 반복문: %d\n",i);
for(int j=1;j<=5;j++){
printf(" 두 번째 반복문: %d\n",j);
}
}
✅ 출력 구조
첫 번째 반복문: 1
두 번째 반복문: 1
두 번째 반복문: 2
...
첫 번째 반복문: 2
두 번째 반복문: 1
✅ 핵심 해석
👉 i는 큰 반복
👉 j는 작은 반복
i 한 번 → j 전체
✅ 4. 구구단 (완벽 활용 예🔥)
for(int i=2; i<=9; i++){
printf("%d단 계산\n", i);
for(int j=1;j<=9;j++){
printf("%d x %d = %d\n", i, j, i*j);
}
}
✅ 구조
i → 단 (2~9단)
j → 곱하는 숫자 (1~9)
✅ 해석
2단 → 1~9
3단 → 1~9
...
👉 이중 반복문 사용 이유:
🔥 “행 + 열 구조 만들기”
✅ 5. 별 찍기 (이중 반복문 핵심🔥)
for(int i=1;i<=5;i++){
for(int j=1; j<=i; j++){
printf("*");
}
printf("\n");
}
✅ 출력
*
**
***
****
*****
✅ 핵심 구조
👉 j가 i만큼 반복됨
i=1 → * 1개
i=2 → * 2개
i=3 → * 3개
✅ 6. 흐름 완전 분석 (이미지 방식🔥)
👉 이미지 그대로 이해:
✅ i / j 흐름
i = 1 → j = 1
i = 2 → j = 1, 2
i = 3 → j = 1, 2, 3
✅ 실제 실행
i=1 → *
i=2 → **
i=3 → ***
👉 이걸 표로 보면 ↓
i: 1 2 3 4 5
j: 1 | 1 2 | 1 2 3 | ...
출력: * ** *** **** *****
| i | 1 | 2 | 2 | 3 | 3 | 3 | 4 | 4 | 4---- |
| j | 1 | 1 | 2 | 1 | 2 | 3 | 1 | 2 | 3 |
| 출력 | *줄바꿈 | * | *줄바꿈 | * | * | *줄바꿈 | * | * | * |
✅ 7. 핵심 개념 정리 🔥
✅ ✅ 1️⃣ 반복 구조
바깥 → 줄
안쪽 → 칸
✅ ✅ 2️⃣ 실행 규칙
바깥 1번 → 안쪽 전부 실행
✅ ✅ 3️⃣ 패턴 생성 핵심
👉 j 조건에 따라 모양이 결정됨
| 조건 | 결과 |
| j <= 5 | 항상 5개 |
| j <= i | 삼각형 |
| j >= i | 역삼각형 |
✅ 8. 언제 쓰는가
✅ 이중 반복문 사용하는 상황
- 구구단 ✅
- 별 찍기 ✅
- 2차원 배열 ✅
- 좌표 처리 ✅
✅ ✅ 전체 흐름 정리 (빌드업🔥)
1. 반복문 → 같은 작업 반복
2. 이중 반복문 → 반복 안에 반복
3. 바깥(i) → 큰 흐름
4. 안쪽(j) → 세부 반복
5. 조건에 따라 모양 생성
✅ ✅ 최종 한 줄 정리
이중 반복문은 바깥 반복문이 한 번 실행될 때마다 안쪽 반복문이 전체 실행되며, 주로 행과 열 구조나 패턴 출력에 사용된다.
😎 초간단 감각
i → 줄
j → 별
j <= i → 점점 늘어나는 구조
🔥 진짜 핵심 한 방
👉 “i는 몇 줄 출력할지 정하고, j는 그 줄에 몇 개 출력할지 결정한다”
'c언어' 카테고리의 다른 글
| 이중 반복문 핵심 깨달음 정리 (0) | 2026.05.31 |
|---|---|
| 이중 반복문과 별 찍기 패턴 정리 (0) | 2026.05.31 |
| for문 vs while문 정리 (0) | 2026.05.31 |
| 반복문과 증감 연산자 정리 (0) | 2026.05.31 |
| 회원가입 프로그램 (0) | 2026.05.31 |