중첩 반복문
Coddy Swift 여정의 기초 섹션에 포함된 레슨. 86개 중 49번째.
중첩 루프는 단순히 다른 루프 안에 있는 루프입니다. 내부 루프는 외부 루프의 각 반복마다 모든 반복을 완료합니다.
let rows = 3
let cols = 2
for row in 1...rows {
for col in 1...cols {
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 2row의 각 값마다 내부 루프가 다시 시작되어 col의 모든 값을 1부터 cols까지 순회합니다. 따라서 rows = 3이고 cols = 2이면 내부의 코드는 총 6번 실행됩니다(3 × 2). rows와 cols는 절대 바뀌지 않습니다. 루프가 언제 멈출지만 알려 줍니다.
중첩 루프는 격자 형태의 구조를 다루거나 패턴을 생성하는 데 흔히 사용됩니다.
다음은 별표로 된 간단한 직사각형을 출력하는 예입니다:
for row in 1...2 {
for col in 1...4 {
print("*", terminator: "")
}
print("") // 다음 줄로 이동
}
// 출력:
// ****
// ****terminator: ""는 print가 줄바꿈을 추가하지 않도록 하므로 별표가 같은 행에 표시됩니다. 내부 루프가 끝난 후 print("")는 다음 줄로 이동합니다.
챌린지
쉬움입력에서 두 정수 rows와 cols를 읽습니다. 중첩 루프를 사용하여 각 셀에 해당 행 번호와 열 번호의 곱이 표시되는 숫자 격자를 출력하세요.
다음 입력을 받습니다:
- 첫 번째 줄: 행의 개수(예:
"3") - 두 번째 줄: 열의 개수(예:
"4")
요구 사항:
- 행을 위한 바깥쪽 루프를 사용합니다(1부터
rows까지). - 열을 위한 안쪽 루프를 사용합니다(1부터
cols까지). - 현재 행 번호와 열 번호의 곱을 출력합니다.
- 같은 행의 값은 공백으로 구분합니다.
- 각 행은 별도의 줄에 표시되어야 합니다.
힌트: 값들을 같은 줄에 표시하려면 terminator: " "를 사용하고, 안쪽 루프가 끝난 뒤 다음 줄로 이동하려면 print("")를 사용하세요.
예를 들어, rows가 3이고 cols가 4라면 출력은 다음과 같아야 합니다.
1 2 3 4
2 4 6 8
3 6 9 12 각 루프에 새 카운터를 사용하고(예: 행에는 row, 한 행의 숫자에는 col) 이를 rows 또는 cols와 비교하세요. rows와 cols 자체는 변경하지 마세요. 모든 행에서 cols를 다시 사용해야 합니다.
직접 해보기
let rows = Int(readLine()!)!
let cols = Int(readLine()!)!
// TODO: 아래에 코드를 작성하세요
// 중첩 반복문을 사용해 곱셈 표를 출력하세요
// 바깥쪽 반복문: 행을 순회하세요 (1부터 rows까지)
// 안쪽 반복문: 열을 순회하세요 (1부터 cols까지)
// row * column의 곱을 출력하세요
// 값을 같은 줄에 출력하려면 print(..., terminator: " ")를 사용하세요
// 안쪽 반복문이 끝난 뒤 다음 줄로 넘어가려면 print("")를 사용하세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Swift 플레이그라운드