📜  Kotlin for 循环

📅  最后修改于: 2022-05-13 01:54:42.488000             🧑  作者: Mango

Kotlin for 循环

在 Kotlin 中, for循环相当于 C# 等其他语言的foreach循环。这里的 for 循环用于遍历任何提供迭代器的数据结构。它的使用方式与其他编程语言(如Java或 C)的 for 循环非常不同。

Kotlin 中for 循环的语法:

for(item in collection) {
       // code to execute
}

在 Kotlin 中,for 循环用于遍历以下内容,因为它们都提供了迭代器。

  • 范围
  • 大批
  • 细绳
  • 收藏

使用 for 循环遍历范围-

您可以遍历Range ,因为它提供了迭代器。有很多方法可以遍历 Range。 for 循环中用于检查值的in运算符是否在 Range 内。
下面的程序是以不同方式遍历范围的示例其中是运算符检查范围中的值。如果值介于范围之间,则返回 true 并打印该值。

  • 遍历范围以打印值:
    fun main(args: Array)
    {
        for (i in 1..6) {
            print("$i ")
        }
    }
    

    输出:

    1 2 3 4 5 6
  • 使用 step-3 遍历范围以跳转:
    fun main(args: Array)
    {
        for (i in 1..10 step 3) {
            print("$i ")
        }
    }
    

    输出:

    1 4 7 10
  • 如果不使用DownTo ,您将无法从上到下遍历 Range:
    fun main(args: Array)
    {
        for (i in 5..1) {
            print("$i ")
        }
        println("It prints nothing")
    }
    

    输出:

    It prints nothing
  • 使用downTo 从上到下遍历 Range:
    fun main(args: Array)
    {
        for (i in 5 downTo 1) {
            print("$i ")
        }
    }
    

    输出:

    5 4 3 2 1
  • 使用downTostep 3从上到下迭代 Range:
    fun main(args: Array)
    {
        for (i in 10 downTo 1 step 3) {
            print("$i ")
        }
    }
    

    输出:

    10 7 4 1

    使用 for 循环遍历数组

    数组是包含相同数据类型的数据结构,如整数或字符串。可以使用 for 循环遍历数组,因为它还提供了迭代器。每个数组都有一个起始索引,默认为 0。

    有以下可以遍历数组:

    • 不使用 Index 属性
    • 使用索引属性
    • 使用 withIndex 库函数
    • 不使用索引属性遍历数组:
      fun main(args: Array) {
          var numbers = arrayOf(1,2,3,4,5,6,7,8,9,10)
        
          for (num in numbers){
              if(num%2 == 0){
                  print("$num ")
              }
          }
      }
      

      输出:

      2 4 6 8 10
    • 使用 index 属性遍历数组:
      fun main(args: Array) {
        
          var planets = arrayOf("Earth", "Mars", "Venus", "Jupiter", "Saturn")
        
          for (i in planets.indices) {
              println(planets[i])
          }
      }
      

      输出:

      Earth
      Mars
      Venus
      Jupiter
      Saturn
      
    • 使用withIndex()库函数遍历数组:
      fun main(args: Array) {
          var planets = arrayOf("Earth", "Mars", "Venus", "Jupiter", "Saturn")
        
          for ((index,value) in planets.withIndex()) {
              println("Element at $index th index is $value")
          }
      }
      

      输出:

      Element at 0 th index is Earth
      Element at 1 th index is Mars
      Element at 2 th index is Venus
      Element at 3 th index is Jupiter
      Element at 4 th index is Saturn
      

    使用 for 循环遍历字符串

    可以使用 for 循环遍历字符串,因为它还提供了迭代器。

    遍历字符串有以下几种方式:

    • 不使用 Index 属性
    • 使用索引属性
    • 使用 withIndex 库函数
    fun main(args: Array) {
        var name = "Geeks"
        var name2 = "forGeeks"
          
        // traversing string without using index property
        for (alphabet in name)   print("$alphabet ")
      
        // traversing string with using index property
        for (i in name2.indices) print(name2[i]+" ")
        println(" ")
          
        // traversing string using withIndex() library function
        for ((index,value) in name.withIndex())
        println("Element at $index th index is $value")
    }
    

    输出:

    G e e k s f o r G e e k s  
    Element at 0 th index is G
    Element at 1 th index is e
    Element at 2 th index is e
    Element at 3 th index is k
    Element at 4 th index is s
    

    使用 for 循环遍历集合

    您可以使用 for 循环遍历集合。集合列表、地图和集合三种类型。
    listOf()函数中,我们可以同时传递不同的数据类型。

    下面是使用 for 循环遍历列表的程序。

    fun main(args: Array) {
      
        // read only, fix-size
        var collection = listOf(1,2,3,"listOf", "mapOf", "setOf")
      
        for (element in collection) {
            println(element)
        }
    }
    

    输出:

    1
    2
    3
    listOf
    mapOf
    setOf