English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы Kotlin

Контроль потока в Kotlin

Функции в Kotlin

Строки в Kotlin

Ориентированность на объекты (OOP) в Kotlin

Цикл for в Kotlin

Цикл for в Kotlin遍历 любые объекты, предоставляющие итератор. В этой статье вы узнаете, как создавать цикл for (с помощью примеров).

В отличие от Java и других языков, в Kotlin нетТрадиционный цикл for.

В Kotlin, цикл for используется для перебора диапазонов, массивов, мап и других объектов, предоставляющих итератор.

Синтаксис цикла for в Kotlin:

for (item in collection) {
    //тело цикла
}

Пример: перебор диапазона

fun main(args: Array<String>) {
    for (i in 1..5) {
        println(i)
    }
}

Здесь выполняется циклический перебор диапазона и вывод个别 элементов.

При выполнении этого программы выводится:

1
2
3
4
5

Если тело цикла содержит только одну команду (например, в приведенном выше примере), то не нужно использовать фигурные скобки { }.

fun main(args: Array<String>) {
    for (i in 1..5) println(i)
}

можно итерировать диапазон с помощью цикла for, так как range предоставляет итератор.

Пример: различные методы итерации диапазона

fun main(args: Array<String>) {
    print("for (i in 1..5) print(i) = ")
    for (i in 1..5) print(i)
    println()
    print("for (i in 5..1) print(i) = ")
    for (i in 5..1) print(i) // выводит ничего
    println()
    print("for (i in 5..1) print(i) = ")
    for (i in 5..1) print(i)
    println()
    print("for (i in 1..4 step 2) print(i) = ")
    for (i in 1..5 step 2) print(i)
    println()
    print("for (i in 4..1 step 2) print(i) = ")
    for (i in 5..1 step 2) print(i)
}

При выполнении этого программы выводится:

for (i in 1..5) print(i) = 12345
for (i in 5..1) print(i) = 
for (i in 5..1) print(i) = 54321
for (i in 1..4 step 2) print(i) = 135
for (i in 4..1 step 2) print(i) = 531

Итерация массива

Это пример итерации массива строк.

fun main(args: Array<String>) {
    var language = arrayOf("Ruby", "Koltin", "Python" "Java")
    for (item in language)
        println(item)
}

При выполнении этого программы выводится:

Ruby
Koltin
Python
Java

можно итерировать массив с индексами. Например,

fun main(args: Array<String>) {
    var language = arrayOf("Ruby", "Koltin", "Python", "Java")
    for (item in language.indices) {
        //печать элементов массива с четными индексами
        if (item % 2 == 0) {
            println(language[item])
        }
        
    }
}

При выполнении этого программы выводится:

Ruby
Python

Пройтись по строке

fun main(args: Array<String>) {
    var text = "Kotlin"
    for (letter in text) {
        println(letter)
    }
}

При выполнении этого программы выводится:

K
o
t
l
i
n

Как и в массивах, вы можете использовать индекс для遍ения строк. Например:

fun main(args: Array<String>) {
    var text = "Kotlin"
    for (item in text.indices) {
        println(text[item])
    }
}

При выполнении этого программы выводится:

K
o
t
l
i
n