【Kotlin】Kotlin流程控制

1 选择结构

Kotlin 中选择结构主要包含 if -else、when 语句,并且可以返回结果。

1.1 if-else

1.1. 条件选择

Kotlin 复制代码
fun main() {
    var score = 85
    if (score >= 90) {
        println("优秀")
    } else if (score >= 80) {
        println("良好")
    } else if (score >= 60) {
        println("及格")
    } else {
        println("不及格")
    }
}

说明:如果 {} 里只有一条语句,可以省略 {},if-else 语句可以嵌套使用,其他流程控制语句也可以嵌套使用。

1.1.2 条件返回

if-else 语句也可以作为结果判断。

1)单行案例

Kotlin 复制代码
fun main() {
    var score = 85
    var res = if (score > 60) "及格" else "不及格"
}

2)多行案例

Kotlin 复制代码
fun main() {
    var score = 85
    var res = if (score > 60) {
        println("恭喜您通过考试")
        "及格"
    } else {
        println("欢迎下次光临")
        "不及格"
    }
    println(res) // 及格
}

打印结果如下。

说明:返回结果需要放在 {} 中的最后一行,否则返回的是 Unit。

1.2 when

1.2.1 条件选择

when 语句与 Java 中 switch 语句类似。

1)简单案例

Kotlin 复制代码
fun main() {
    var grade = 'B'
    when(grade) {
        'A' -> {
            println("优秀")
        }
        'B' -> {
            println("良好")
        }
        'C' -> {
            println("及格")
        }
        else -> {
            println("不及格")
        }
    }
}

说明:如果 {} 里只有一条语句,可以省略 {}。

2)多分支合并

Kotlin 复制代码
fun main() {
    var grade = 'B'
    when(grade) {
        'A','B','C' -> println("及格")
        else -> println("不及格")
    }
}

1.2.2 条件返回

when 语句也可以作为结果判断。

1)简单案例

Kotlin 复制代码
fun main() {
    var grade = 'B'
    var res = when(grade) {
        'A' -> {
            println("你真棒")
            "优秀"
        }
        else -> {
            println("加油")
            "及格"
        }
    }
    println(res)
}

打印结果如下。

说明:返回结果需要放在 {} 中的最后一行,否则返回的是 Unit。

2)范围分支

Kotlin 复制代码
fun main() {
    var score = 85
    var res = when(score) {
        in 90..100 -> "优秀"
        in 80..<90 -> "良好"
        in 60..<80 -> "良好"
        else -> "不及格"
    }
    println(res) // "良好"
}

2 循环结构

Kotlin 中循环结构主要包含 for、while、do-while 循环结构。另外,continue 语句可以控制跳过某次循环,break 语句可以控制跳出循环体。

2.1 for

for 循环可以对任何提供迭代器(iterator)的对象进行遍历。

1)遍历整数范围(IntRange、IntProgression)

Kotlin 复制代码
fun main() {
    for (i in 1..5) {
        println(i) // 打印: 1、2、3、4、5
    }
    for (i in 5 downTo 1) {
        println(i) // 打印: 5、4、3、2、1
    }
    for (i in 1..<5 step 2) {
        println(i) // 打印: 1、3
    }
}

2)遍历数组 / 列表

Kotlin 复制代码
fun main() {
    var items = arrayOf("aa", "bb", "cc")
    // var items = listOf("aa", "bb", "cc")
    for (item in items) {
        println(item) // 打印: aa、bb、cc
    }
    for (index in items.indices) {
        println("items[${index}]=${items[index]}") // 打印: items[0]=aa、items[1]=bb、items[2]=cc
    }
}

2.2 while

Kotlin 复制代码
fun main() {
    var i = 0
    while(i < 5) {
        println(i)
        i++
    }
}

2.3 do-while

Kotlin 复制代码
fun main() {
    var i = 0
    do {
        println(i)
        i++
    } while (i < 5)
}

2.4 continue

使用 continue 语句,可以跳过循环体中 continue 后面的语句,继续执行下一轮循环。

1)单层循环

Kotlin 复制代码
fun main() {
    for (i in 1..5) {
        if (i == 3) continue
        println(i) // 打印: 1、2、4、5
    }
}

2)多层循环

Kotlin 复制代码
fun main() {
    label@ for (i in 1..3) {
        for (j in 4..6) {
            if (j == 5) continue@label
            println("($i,$j)") // 打印: (1,4)、(2,4)、(3,4)
        }
    }
}

说明:label 可以修改为任何符合变量命名规范的名字。

2.5 break

使用 break 语句,可以跳出循环体,继续执行循环体后面的语句。

1)单层循环

Kotlin 复制代码
fun main() {
    for (i in 1..5) {
        if (i == 3) break
        println(i) // 打印: 1、2
    }
}

2)多层循环

Kotlin 复制代码
fun main() {
    label@ for (i in 1..3) {
        for (j in 4..6) {
            if (j == 5) break@label
            println("($i,$j)") // 打印: (1,4)
        }
    }
}

说明:label 可以修改为任何符合变量命名规范的名字。

相关推荐
编程火箭车12 小时前
【Java SE 基础学习打卡】26 跳转语句
java基础·continue·流程控制·编程入门·break·循环控制·跳转语句
6666v613 小时前
Android Kotlin(2) 协程上下文与异常处理机制
kotlin
zhangphil17 小时前
Kotlin协程await与join挂起函数异同
kotlin
儿歌八万首19 小时前
Android 自定义 View 实战:打造一个跟随滑动的丝滑指示器
android·kotlin
4Forsee20 小时前
【Kotlin】Kotlin 基础语法:变量、控制和函数
kotlin
Propeller1 天前
【Kotlin】Kotlin 基础语法:变量、控制和函数
kotlin
一雨方知深秋2 天前
数组定义及访问
java·数组·二维数组·for·length·定义访问
Rysxt_2 天前
Kotlin前景深度分析:市场占有、技术优势与未来展望
android·开发语言·kotlin
莫白媛2 天前
Android开发之Kotlin 在 Android 开发中的全面指南
android·开发语言·kotlin
天勤量化大唯粉3 天前
基于距离的配对交易策略:捕捉价差异常偏离的均值回归机会(天勤量化代码实现)
android·开发语言·python·算法·kotlin·开源软件·策略模式