浅谈Kotlin编程-Kotlin循环控制

750 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情

前言

上一篇学习到了Kotlin 的条件控制,本篇来学习Kotlin循环结构的知识。

本文总览

Kotlin循环控制.png

1. While循环

while循环用于重复迭代代码块,只要给定条件为 true就会执行一次循环代码块。若条件为 false,则直接跳过循环代码块执行后面代码。

while (x > 0) { x-- }  // 当条件 x>0 成立,x 就会减一

do-while循环 与 while循环相类似,也可用于重复执行迭代代码块。但有差别的点是:它会先执行一次循环代码块,才检测条件是否满足,换句话说:它会至少执行一次 循环代码块。

do { val y = retrieveData() } while (y != null) 
// 不管while 条件是否满足,都会先执行一次 y = retrieveData()

有时候会看到一些无限循环的示例,只要将条件语句设定为 true,就会一直循环执行 迭代代码块:

do {
     // 循环代码块
}
while (true)

2. For循环

for循环用于迭代或循环 数组,范围,集合等的元素,可以对任何提供迭代器(iterator)的对象进⾏遍历。它的语法格式:

for (item in collection) {// 逻辑处理}
  • ⼀个成员函数或者扩展函数 iterator() 返回 Iterator<>

    • 有⼀个成员函数或者扩展函数 next()
    • 有⼀个成员函数或者扩展函数 hasNext() 返回 Boolean
  • 可以用在数字区间上迭代,使用区间表达式

for (i in 1..3) { println(i) }  // 逐个打印 区间[1,3]中的数字
  • 遍历数组,同时打印出元素下标和元素值
for ((index, value) in array.withIndex()) {  // 使用 库函数withIndex()
    println("the element at $index is $value")  // 逐个打印元素的下标和数值
}

forEach语句:使用这个语句遍历数组或集合,比for语句更加简便,语法形式如下:

调用者.forEach() { 
     println("it=${it}")  // 逐个打印元素
}

日常开发中,结合实际业务场景来选取使用 for 还是 for-each

3. break和continue

在 Kotlin 中有三种结构化跳转表达式:

  • return 直接返回方法/函数的值,结束;
  • break 跳出本次循环,继续执行后面业务代码
  • continue 跳出本次循环,直接进入下一次循环

3.1 break语句

break最常用在 java 中,常与与 switch组成 switch-break 语句。但在 Kotlin 中没有switch这个语法,break语句通常与 if表达式 一起用:

for(n in 1..10){
    if (n==5) {
        break // 在 n = 5时跳出循环 
    }
}

与 if语句组合,一旦满足给定的条件时,就会终止本次循环。

3.2 continue语句

continue 用于跳过本次迭代并将控制流跳转到下一次迭代,通常与 if表达式 一起使用,以跳过指定条件的当前循环。

for (n in 1..5){
    ...
    if(n==2||n==4) {
        continue    // 只要满足上述条件,就会执行该语句跳出本次循环
    }
    ...
}

其实 continue 在Java或者Kotlin用法是一样的,都很好理解和记住。

总结

主要学习了循环结构的几个语法知识点, 之前学过 java或c/c++的话,这个知识点其实一点都不难,if while的用法完全一样,只是写法有一点点调整。还结合示例代码有助于加深理解,学知识就是多写多练!

掘金(JUEJIN)一起进步,一起成长!