https://kotlinlang.org/docs/control-flow.html#for-loops
For 문 (For loops)
for 문은 C#의 foreach 문과 동일하게 interator를 제공하는 타입이면 사용할 수 있다. 기본 사용 방법은 아래 와 같다.
val items = listOf("apple", "banana", "kiwi")
for (item in items) println(item)
// 코드 부분을 블록으로 감싸서 사용할 수 있다.
for (item in items) {
println("item is $item")
}
For 문에 인자로 사용한 타입들
위에서 이야기 한 대로 iterator를 제공하는 타입으면 for 문의 대상 으로 사용 할 수 있다. 이는 구체적으로 Iterator<>를 반환하는 iterator()함수를 가지고 있는 타입:
- next() 함수가 존재하는 타입
- hasNext() 함수가 존재하는 타입
을 말한다.
숫자의 범위로 반복문을 실행 하고 싶을때는 range 표현식을 사용한다.
for (i in 1..3) {
println(i)
}
for (i in 6 downTo 0 step 2) {
println(i)
}
range나 배열 기반의 for loop는 인덱스 기반 루프로 컴파일되고 iterator 객체를 생성하지 않는다.
배열을 인덱스 기반으로 순회하거나, for 문 안에서 index와 해당 index의 값을 모두 받아서 처리 하고 싶은 경우에는 아래와 같이 indices 속성이나 withIndex() 함수를 이용한다.
val items = listOf("apple", "banana", "kiwi")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}
for ((index, value) in items.withIndex()) {
println("the element at $index is $value")
}
While (While loop)
while, do-while 문은 특정 조건을 만족하는 동안 코드 블록을 계속해서 실행하는 반복문 이다. while과 do-while은 조건의 참, 거짓을 판단하는 순서가 다르다.
- while 문은 조건을 먼저 확인하고, 조건을 만족하면 코드 블록을 실행한다. 그리고 다시 조건을 확인한다.
- do-while은 코드블록을 먼저 실행하고 그 이후에 조건을 확인한다. 조건을 만족하면 다시 코드블록을 반복하고, 그렇지 않으면 중단한다. 그렇기 때문에 무조건 1회 이상은 코드 블록이 실행 된다.
val items = listOf("apple", "banana", "kiwi")
var index = 0
while (index < items.size) {
println("item at $index is ${items[index]}")
index++
}
var executeCount = 1
do {
println("this is ${executeCount}th do-while loop")
executeCount++
} while (executeCount < 2)
break, continue
다른 언어들과 마찬가지로 break 명령어와 continue 명령어가 존재한다.
반응형
'Kotlin' 카테고리의 다른 글
Kotlin - Exceptions (0) | 2024.01.12 |
---|---|
Kotlin - Returns and jumps (0) | 2024.01.11 |
Kotlin - 조건문 (2) | 2024.01.07 |
Kotlin - 타입체크와 형 변환 (0) | 2024.01.06 |
Kotlin - 데이터 타입 (배열) (0) | 2024.01.01 |