중첩 반복문
Coddy Kotlin 여정의 기초 섹션에 포함된 레슨. 93개 중 52번째.
다른 루프 안에 루프를 넣어 중첩 루프를 만들 수 있습니다. 내부 루프는 외부 루프의 각 반복마다 완전히 실행됩니다.
val rows = 2
val cols = 3
for (i in 1..rows) {
for (j in 1..cols) {
println("i=$i, j=$j")
}
}
// 출력:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3i가 1일 때 내부 루프는 cols번 실행됩니다(j는 1부터 3까지 증가합니다). 그런 다음 i가 2가 되고, 내부 루프가 다시 시작되어 j는 다시 1부터 3까지 증가합니다. 따라서 총 반복 횟수는 2 × 3 = 6입니다. rows와 cols는 절대 바뀌지 않습니다. 이 값들은 루프가 언제 멈출지 알려 줄 뿐입니다.
중첩 루프는 패턴을 만들거나 격자 형태의 구조를 다룰 때 흔히 사용됩니다:
for (row in 1..3) {
for (col in 1..row) {
print("*")
}
println()
}
// 출력:
// *
// **
// ***여기서는 내부 루프의 범위가 외부 루프의 변수에 따라 달라져 삼각형 패턴을 만듭니다. print() 함수는 줄바꿈 없이 출력하고, println()은 각 행이 끝난 후 다음 줄로 이동합니다.
챌린지
중급입력에서 정수 n을 읽습니다. 중첩 루프를 사용하여 1부터 n까지의 곱셈표를 출력합니다.
1부터 n까지의 각 행 i에 대해, i * 1, i * 2, ..., i * n의 곱을 공백으로 구분하여 출력한 다음 줄바꿈합니다.
예를 들어, 입력이 3이면 출력은 다음과 같아야 합니다:
1 2 3
2 4 6
3 6 9입력이 4이면 출력은 다음과 같아야 합니다:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16같은 줄에 값을 출력하려면 공백과 함께 print()를 사용하고, 다음 행으로 이동하려면 println()을 사용합니다.
각 루프에 새 카운터를 사용하고(예: 행에는 i, 열에는 j) 둘 다 n과 비교합니다. n 자체는 변경하지 마세요. 각 행에서 다시 필요합니다.
직접 해보기
fun main() {
// 입력값을 읽습니다
val n = readLine()!!.toInt()
// TODO: 아래에 코드를 작성하세요
// 중첩 반복문을 사용해 구구단을 출력하세요
// 같은 줄에 값을 출력할 때는 공백과 함께 print()를 사용하세요
// 다음 행으로 넘어가려면 println()을 사용하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드