수색…


비고

Kotlin에서 루프는 최적화 된 루프로 컴파일됩니다. 예를 들어, 숫자 범위를 반복 할 경우 바이트 생성은 객체 생성의 오버 헤드를 피하기 위해 일반 int 값을 기반으로 해당 루프로 컴파일됩니다.

x 번 작업 반복

repeat(10) { i ->
    println("This line will be printed 10 times")
    println("We are on the ${i + 1}. loop iteration")
}

반복 가능한 반복문

for-loop 표준을 사용하여 반복 가능한 모든 반복 가능 :

val list = listOf("Hello", "World", "!")
for(str in list) {
    print(str)
}

Kotlin의 많은 것들은 숫자 범위와 같이 반복 가능합니다 :

for(i in 0..9) {
    print(i)
}

iterating하는 동안 인덱스가 필요한 경우 :

for((index, element) in iterable.withIndex()) {
    print("$element at index $index")
}

또한 forEach 함수를 사용하여 명백한 언어 구문없이 표준 라이브러리에 포함 된 반복적 인 함수 접근법이 있습니다.

iterable.forEach {
    print(it.toString())
}

it 예는 암시 적으로 현재 요소를 보유에 참조 람다 함수

While 루프

while과 do-while 루프는 다른 언어에서와 마찬가지로 작동합니다.

while(condition) {
    doSomething()
}

do {
    doSomething()
} while (condition)

do-while 루프에서 조건 블록은 루프 본문에 선언 된 값과 변수에 액세스 할 수 있습니다.

끊고 계속하기

휴식 및 계속 키워드는 다른 언어에서와 마찬가지로 작동합니다.

while(true) {
    if(condition1) {
        continue // Will immediately start the next iteration, without executing the rest of the loop body
    }
    if(condition2) {
        break // Will exit the loop completely
    }
}

중첩 루프가있는 경우 루프 문에 레이블을 지정하고 break 및 continue 문을 한정하여 계속하거나 중단 할 루프를 지정할 수 있습니다.

outer@ for(i in 0..10) {
    inner@ for(j in 0..10) {
        break       // Will break the inner loop
        break@inner // Will break the inner loop
        break@outer // Will break the outer loop
    }
}

이 접근법은 forEach 구조체에서 작동하지 않습니다.

kotlin의지도 반복하기

//iterates over a map, getting the key and value at once

var map = hashMapOf(1 to "foo", 2 to "bar", 3 to "baz")

for ((key, value) in map) {
    println("Map[$key] = $value")
}

재귀

재귀를 통한 루핑은 대부분의 프로그래밍 언어 에서처럼 Kotlin에서도 가능합니다.

fun factorial(n: Long): Long = if (n == 0) 1 else n * factorial(n - 1)

println(factorial(10)) // 3628800

위의 예제에서 factorial 함수는 주어진 조건이 충족 될 때까지 반복적으로 호출됩니다.

반복을위한 기능적 구성

Kotlin 표준 라이브러리 는 컬렉션에 대해 반복적으로 작업 할 수있는 많은 유용한 기능을 제공합니다.

예를 들어 map 함수를 사용하여 항목 목록을 변환 할 수 있습니다.

val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
val numberStrings = numbers.map { "Number $it" }

이 스타일의 많은 장점 중 하나는 비슷한 방식으로 작업을 연결할 수 있다는 것입니다. 말하자면 위의 목록을 짝수로 필터링해야하는 경우 사소한 수정 만 필요합니다. filter 기능을 사용할 수 있습니다.

val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
val numberStrings = numbers.filter { it % 2 == 0 }.map { "Number $it" }


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow