技术文档中心
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
  • 基础入门

    • Kotlin 教程
    • 快速开始
    • 基础语法
    • 变量与类型
    • 控制流
    • 函数
  • 面向对象

    • 类与对象
  • 高级特性

    • 泛型
    • 集合操作
    • 协程

控制流

if 表达式

// 传统用法
val max = if (a > b) a else b

// 代码块
val max = if (a > b) {
    println("Choose a")
    a
} else {
    println("Choose b")
    b
}

when 表达式

// 替代 switch
when (x) {
    1 -> println("One")
    2 -> println("Two")
    3, 4 -> println("Three or Four")
    in 5..10 -> println("5 to 10")
    else -> println("Other")
}

// 作为表达式
val result = when (x) {
    0 -> "Zero"
    1 -> "One"
    else -> "Many"
}

// 不带参数
when {
    x < 0 -> println("Negative")
    x == 0 -> println("Zero")
    x > 0 -> println("Positive")
}

// 类型判断
when (obj) {
    is String -> println(obj.length)
    is Int -> println(obj * 2)
    else -> println("Unknown")
}

for 循环

// 遍历范围
for (i in 1..5) {
    println(i)  // 1 2 3 4 5
}

// 不包含结束值
for (i in 1 until 5) {
    println(i)  // 1 2 3 4
}

// 步长
for (i in 1..10 step 2) {
    println(i)  // 1 3 5 7 9
}

// 倒序
for (i in 5 downTo 1) {
    println(i)  // 5 4 3 2 1
}

// 遍历数组
val array = arrayOf("a", "b", "c")
for (item in array) {
    println(item)
}

// 带索引
for ((index, value) in array.withIndex()) {
    println("$index: $value")
}

while 循环

var i = 0
while (i < 5) {
    println(i)
    i++
}

// do-while
var j = 0
do {
    println(j)
    j++
} while (j < 5)

跳转

// break
for (i in 1..10) {
    if (i == 5) break
    println(i)
}

// continue
for (i in 1..10) {
    if (i % 2 == 0) continue
    println(i)
}

// 标签
loop@ for (i in 1..3) {
    for (j in 1..3) {
        if (i == 2 && j == 2) break@loop
        println("$i, $j")
    }
}

// return
fun findItem(items: List<String>, target: String): Int {
    items.forEachIndexed { index, item ->
        if (item == target) return index
    }
    return -1
}

范围

// 闭区间
val range1 = 1..10  // 1 到 10

// 开区间
val range2 = 1 until 10  // 1 到 9

// 检查包含
if (5 in range1) {
    println("5 is in range")
}

// 字符范围
for (c in 'a'..'z') {
    print(c)
}
最近更新: 2026/2/24 16:53
Contributors: hailong
Prev
变量与类型
Next
函数