코틀린 반복문 완벽 정리
코틀린에서는 반복문을 이용해 같은 동작을 여러 번 수행할 수 있다.
대표적인 반복문으로는 for, while, do-while이 있다.
for 문 기본 구조
for 문은 반복 가능한 객체(컬렉션, 범위, 배열 등)를 순회할 때 사용한다.
for (item in 컬렉션) {
// 실행할 코드
}
예시
val numbers = listOf(1, 2, 3, 4, 5)
for (num in numbers) {
println(num)
}
범위를 이용한 for 문
코틀린에서는 .. 연산자를 사용해 범위(Range) 를 쉽게 지정할 수 있다.
for (i in 1..5) {
println(i)
}
역순 반복
for (i in 5 downTo 1) {
println(i)
}
간격 지정
for (i in 1..10 step 2) {
println(i)
}
범위 제외
for (i in 1 until 5) { // 1, 2, 3, 4만 포함
println(i)
}
배열 또는 리스트 반복
val fruits = arrayOf("사과", "배", "포도")
for (fruit in fruits) {
println(fruit)
}
인덱스와 함께 반복
withIndex()를 사용하면 인덱스와 값을 동시에 가져올 수 있다.
val fruits = listOf("사과", "배", "포도")
for ((index, fruit) in fruits.withIndex()) {
println("${index}번째: $fruit")
}
while 문
while 문은 조건이 참일 동안 코드를 반복 실행한다.
while (조건식) {
// 실행할 코드
}
예시
var count = 0
while (count < 5) {
println("카운트: $count")
count++
}
do-while 문
do-while 문은 최소 한 번은 실행되고, 이후 조건을 검사한다.
do {
// 실행할 코드
} while (조건식)
예시
var num = 0
do {
println("num: $num")
num++
} while (num < 3)
break와 continue
break
break는 반복문을 즉시 종료한다.
for (i in 1..10) {
if (i == 5) break
println(i)
}
continue
continue는 해당 반복을 건너뛰고 다음 반복으로 넘어간다.
for (i in 1..5) {
if (i == 3) continue
println(i)
}
중첩 반복문에서 라벨 사용
라벨(Label)을 사용하면 특정 반복문을 제어할 수 있다.
outer@ for (i in 1..3) {
for (j in 1..3) {
if (i == 2 && j == 2) break@outer
println("i=$i, j=$j")
}
}
위 코드에서 break@outer는 바깥쪽 for 문을 종료한다.
반복문 요약 비교표
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
|
문법
|
설명
|
최소 실행 횟수
|
|
for
|
범위 또는 컬렉션 순회
|
0회
|
|
while
|
조건이 참일 때 반복
|
0회
|
|
do-while
|
실행 후 조건 검사
|
1회 이상
|
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
팁
- for 문은 인덱스 반복보다는 컬렉션 순회에 더 적합하다.
- 반복문 내부에서 불필요한 연산은 피하는 것이 좋다.
- break@label과 continue@label을 활용하면 가독성이 높아진다.
- 성능이 중요한 경우 repeat() 함수를 사용할 수도 있다.
repeat() 예시
repeat(3) {
println("반복 횟수: $it")
}