Menu
CoddyTech

중첩 반복문

Coddy GO 여정의 기초 섹션에 포함된 레슨. 109개 중 49번째.

중첩 루프는 다른 루프 안에 배치된 루프입니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행됩니다.

중첩 루프를 사용하여 1~3의 곱셈표를 만들어 봅시다:

rows := 3
cols := 3
for i := 1; i <= rows; i++ {
    for j := 1; j <= cols; 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로 설정되고, 안쪽 루프가 다시 시작되며 j는 다시 1부터 시작합니다:

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"

각 루프에는 고유한 카운터(i와 j)가 있으며, rows와 cols는 절대 바뀌지 않습니다. 이 값들은 루프를 언제 멈출지 알려줄 뿐입니다. 이 패턴은 데이터 테이블을 다루거나 격자 형태의 구조를 만드는 데 매우 유용합니다.

challenge icon

챌린지

초급

이 챌린지에서는 중첩 루프를 사용해 간단한 패턴을 출력하는 연습을 합니다. 바깥쪽 루프는 행을 순회하고, 안쪽 루프는 열을 순회하여 작은 문자 격자를 만듭니다.

중첩 루프를 완성하여 별표(*)로 이루어진 3x3 격자를 출력하세요. 각 별표 뒤에는 공백이 있어야 하므로 각 행은 * * * (끝에 공백 포함)처럼 보여야 합니다. 예상 출력은 다음과 같습니다.

* * * 
* * * 
* * * 

각 루프에 새 카운터를 사용하고(예: 행에는 i, 한 행의 별표에는 j) 이를 rows 또는 columns와 비교하세요. rows와 columns 자체는 변경하지 마세요. 각 행에는 columns가 다시 필요합니다.

직접 해보기

package main

import "fmt"

func main() {
	// 그리드의 행과 열 개수
	rows := 3
	columns := 3
	
	// TODO: 별표(*)로 이루어진 그리드를 출력하는 중첩 반복문을 작성하세요
	// 바깥쪽 반복문은 행을 순회해야 합니다
	// 안쪽 반복문은 열을 순회해야 합니다
	for i := 0; i < rows; i++ {
		// 각 열에 별표를 출력하도록 여기에 안쪽 반복문을 추가하세요
		
		// 각 행이 끝난 뒤 줄바꿈을 출력합니다
		fmt.Println()
	}
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 Go 컴파일러