Menu
Coddy logo textTech

중첩 반복문

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

중첩 루프(nested loop)는 단순히 다른 루프 내부에 있는 루프입니다. 내부 루프는 외부 루프의 매 반복마다 자신의 모든 반복을 완료합니다.

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// 출력:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

row의 각 값에 대해, 내부 루프는 col의 모든 값을 거치며 완전히 실행됩니다. 따라서 3번의 외부 반복과 2번의 내부 반복이 있으면, 내부의 코드는 총 6번(3 × 2) 실행됩니다.

중첩 루프는 그리드와 같은 구조를 다루거나 패턴을 생성하는 데 흔히 사용됩니다.

다음은 별표로 간단한 직사각형을 출력하는 예제입니다:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // 다음 줄로 이동
}
// 출력:
// ****
// ****

terminator: ""print가 줄바꿈을 추가하는 것을 방지하여 별표가 같은 줄에 나타나게 합니다. 내부 루프가 종료된 후, print("")는 다음 줄로 이동합니다.

challenge icon

챌린지

쉬움

입력으로부터 두 개의 정수 rowscols를 읽으세요. 중첩 루프를 사용하여 각 셀에 해당 행 번호와 열 번호의 곱을 표시하는 숫자 그리드를 출력하세요.

다음과 같은 입력을 받게 됩니다:

  • 첫 번째 줄: 행의 개수 (예: "3")
  • 두 번째 줄: 열의 개수 (예: "4")

요구 사항:

  • 행을 위한 외부 루프를 사용하세요 (1부터 rows까지)
  • 열을 위한 내부 루프를 사용하세요 (1부터 cols까지)
  • 현재 행 번호와 열 번호의 곱을 출력하세요
  • 같은 행의 값들은 공백으로 구분하세요
  • 각 행은 서로 다른 줄에 출력되어야 합니다

힌트: terminator: " "를 사용하여 값들을 같은 줄에 유지하고, 내부 루프가 끝난 후 print("")를 사용하여 다음 줄로 이동하세요.

예를 들어, rows3이고 cols4라면, 출력은 다음과 같아야 합니다:

1 2 3 4 
2 4 6 8 
3 6 9 12 

치트 시트

중첩 루프(nested loop)는 다른 루프 안에 포함된 루프입니다. 내부 루프는 외부 루프가 한 번 반복될 때마다 자신의 모든 반복을 완료합니다.

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// 출력:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

3번의 외부 반복과 2번의 내부 반복이 있는 경우, 코드는 총 6번(3 × 2) 실행됩니다.

중첩 루프는 그리드 형태의 구조나 패턴을 만드는 데 유용합니다:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // 다음 줄로 이동
}
// 출력:
// ****
// ****

print가 줄 바꿈을 추가하는 것을 방지하고 출력을 같은 줄에 유지하려면 terminator: ""를 사용하세요. 내부 루프가 끝난 후 다음 줄로 이동하려면 print("")를 사용하세요.

직접 해보기

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: 아래에 코드를 작성하세요
// 중첩 루프를 사용하여 구구단 그리드를 출력하세요
// 외부 루프: 행을 반복합니다 (1부터 rows까지)
// 내부 루프: 열을 반복합니다 (1부터 cols까지)
// row * column의 곱을 출력하세요
// 값을 같은 줄에 유지하려면 print(..., terminator: " ")를 사용하세요
// 다음 줄로 이동하려면 내부 루프 뒤에 print("")를 사용하세요
quiz icon실력 점검

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

기초의 모든 레슨