중첩 반복문
Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 49번째.
중첩 루프(Nested Loops)는 다른 루프 내부에 위치한 루프를 의미합니다. 내부 루프는 외부 루프가 한 번 반복될 때마다 전체가 실행됩니다.
중첩 루프를 사용하여 1부터 3까지의 숫자에 대한 곱셈표를 만들어 봅시다:
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Printf("%d×%d=%d\t", i, j, i*j)
}
fmt.Println()
}이 코드를 실행하면 외부 루프 변수(i)의 각 값에 내부 루프 변수(j)의 모든 값을 곱한 곱셈표를 얻게 됩니다. 출력 결과는 화면에 다음과 같이 표시됩니다:
1×1=1 1×2=2 1×3=3
2×1=2 2×2=4 2×3=6
3×1=3 3×2=6 3×3=9 이것이 어떻게 작동하는지 단계별로 알아봅시다:
먼저, 외부 루프가 i=1로 설정되고 내부 루프가 완전히 실행됩니다:
i=1, j=1: prints "1×1=1"
i=1, j=2: prints "1×2=2"
i=1, j=3: prints "1×3=3"내부 루프가 종료된 후, fmt.Println()을 사용하여 새 줄을 출력합니다.
그 다음 외부 루프가 i=2로 설정되고 내부 루프가 다시 실행됩니다:
i=2, j=1: prints "2×1=2"
i=2, j=2: prints "2×2=4"
i=2, j=3: prints "2×3=6"마지막으로, 외부 루프가 i=3으로 설정되고 내부 루프가 마지막으로 한 번 더 실행됩니다:
i=3, j=1: prints "3×1=3"
i=3, j=2: prints "3×2=6"
i=3, j=3: prints "3×3=9"이러한 중첩 루프(loops within loops) 패턴은 데이터 테이블을 다루거나 그리드와 같은 구조를 생성하는 데 매우 유용합니다.
챌린지
초급이 챌린지에서는 중첩 루프를 사용하여 간단한 패턴을 출력하는 연습을 합니다. 바깥쪽 루프는 행을 반복하고, 안쪽 루프는 열을 반복하여 작은 문자 그리드를 생성합니다.
중첩 루프를 완성하여 3x3 별표(*) 그리드를 출력하세요. 각 별표 뒤에는 공백이 있어야 하므로, 각 행은 * * * 와 같은 모양이어야 합니다 (마지막 공백 포함). 예상 출력 결과는 다음과 같습니다:
* * * * * * * * *
치트 시트
중첩 루프는 다른 루프 안에 배치된 루프입니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행됩니다.
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Printf("%d×%d=%d\t", i, j, i*j)
}
fmt.Println()
}외부 루프는 행을 제어하고, 내부 루프는 열을 제어합니다. 외부 루프의 각 반복에 대해, 내부 루프는 다음 외부 루프 반복으로 넘어가기 전에 모든 반복을 완료합니다.
직접 해보기
package main
import "fmt"
func main() {
// 그리드의 행과 열의 수
rows := 3
columns := 3
// TODO: 별표(*) 그리드를 출력하기 위한 중첩 루프를 생성하세요
// 바깥쪽 루프는 행을 반복해야 합니다
// 안쪽 루프는 열을 반복해야 합니다
for i := 0; i < rows; i++ {
// 각 열에 별표를 출력하기 위해 여기에 안쪽 루프를 추가하세요
// 각 행이 끝난 후 줄바꿈을 출력합니다
fmt.Println()
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
2변수와 기본 자료형
변수란 무엇인가`:=`를 이용한 타입 추론정수 (int)부동 소수점 수불리언 (Booleans)문자열 (Strings)제로 값 (Zero Values)상수명명 규칙요약 - 변수와 타입