# Kotlin `for`循环

> 原文： [https://www.programiz.com/kotlin-programming/for-loop](https://www.programiz.com/kotlin-programming/for-loop)

#### Kotlin 中的 `for`循环会迭代提供迭代器的所有内容。 在本文中，您将学习创建`for`循环（借助示例）。

与 Java 和其他语言不同，Kotlin 中没有传统的[`for`循环](/java-programming/for-loop "Java traditional for loop")。

在 Kotlin 中，`for`循环用于遍历范围，数组，映射等（提供迭代器的任何对象）。

Kotlin 中`for`循环的语法为：

```kt
for (item in collection) {
    // body of loop
}
```

* * *

### 示例：遍历范围

```kt
fun main(args: Array<String>) {

    for (i in 1..5) {
        println(i)
    }
}
```

在这里，循环遍历范围并打印单个项目。

运行该程序时，输出为：

```kt
1
2
3
4
5
```

* * *

如果循环的主体仅包含一个语句（如上述示例），则不必使用花括号`{ }`。

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

* * *

可以使用`for`循环遍历一个范围，因为`range`提供了一个迭代器。 要了解更多信息，请访问 *Kotlin 迭代器*。

* * *

### 示例：遍历一个范围的不同方法

```kt
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)             // prints nothing

    println()

    print("for (i in 5 downTo 1) print(i) = ")
    for (i in 5 downTo 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 downTo 1 step 2) print(i) = ")
    for (i in 5 downTo 1 step 2) print(i)
}
```

When you run the program, the output will be:

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

* * *

## 遍历数组

这是一个遍历`String`数组的示例。

```kt
fun main(args: Array<String>) {

    var language = arrayOf("Ruby", "Koltin", "Python" "Java")

    for (item in language)
        println(item)
}
```

When you run the program, the output will be:

```kt
Ruby
Koltin
Python
Java
```

* * *

可以遍历带有索引的数组。 例如，

```kt
fun main(args: Array<String>) {

    var language = arrayOf("Ruby", "Koltin", "Python", "Java")

    for (item in language.indices) {

        // printing array elements having even index only
        if (item%2 == 0) println(language[item])
    }
}
```

When you run the program, the output will be:

```kt
Ruby
Python
```

如果您想了解有关数组的更多信息，请访问 *Kotlin 数组*。

* * *

## 遍历字符串

```kt
fun main(args: Array<String>) {

    var text= "Kotlin"

    for (letter in text) {
        println(letter)
    }
}
```

When you run the program, the output will be:

```kt
K
o
t
l
i
n
```

* * *

与数组类似，您可以使用索引遍历`String`。 例如，

```kt
fun main(args: Array<String>) {

    var text= "Kotlin"

    for (item in text.indices) {
        println(text[item])
    }
}
```

When you run the program, the output will be:

```kt
K
o
t
l
i
n

```

* * *

在 *Kotin 映射*文章中，您将学习使用`for`循环遍历映射。