For циклы в Kotlin

Цикл for перебирает все, что предоставляет итератор. Это эквивалентно циклу foreach в таких языках, как C#. Синтаксис следующий:

for (item in collection) print(item)

Тело может быть блоком.

for (item: Int in ints) {
    // ...
}

Как упоминалось выше, for выполняет итерацию всего, что предоставляет итератор, т.е.

  • имеет функцию-член или функцию расширения iterator(), возвращаемый тип которого
    • имеет функцию-член или функцию расширения next(), и
    • имеет функцию-член или функцию расширения hasNext(), которая возвращает Boolean.

Все эти три функции необходимо пометить как operator.

Чтобы перебрать диапазон чисел, используйте выражение диапазона:

for (i in 1..3) {
    println(i)
}

for (i in 6 downTo 0 step 2) {
    println(i)
}

Цикл for по диапазону или массиву компилируется в цикл на основе индекса, который не создает объект-итератор.

Если вы хотите перебрать массив или список с индексом, вы можете сделать это следующим образом:

for (i in array.indices) {
    println(array[i])
}

В качестве альтернативы вы можете использовать библиотечную функцию withIndex:

for ((index, value) in array.withIndex()) {
    println("the element at $index is $value")
}

While циклы

while и do..while работают как обычно

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y видима здесь!

break и continue в циклах

Kotlin поддерживает традиционные операторы break и continue в циклах.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Строки в Kotlin

Наследование в Kotlin

Возврат и прыжки в Kotlin