Kotlin核心教程:控制流

2018-11-16  本文已影响3人  程序引力

Kotlin中的控制流由if,when,for,while所支持。

if

if可以作为语句(块),也可以作为表达式。

// 传统用法
var max = a 
if (a < b) max = b

// With else 
var max: Int
if (a > b) {
    max = a
} else {
    max = b
}
// 作为表达式
val max = if (a > b) a else b
// 代码块最后的值作为表达式的值
val max = if (a > b) {
    print("Choose a")
    a
} else {
    print("Choose b")
    b
}

若使用if作为表达式,则必须有else分支。

when

when用于代替switch,其参数会与分支参数顺序比较。when同样可以被作为语句或表达式。

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { // 注意这个块
        print("x is neither 1 nor 2")
    }
}

同时支持同样处理方式的分支合并,分支表达式也可以是任意表达式(不必是常量):

when (x) {
    0, 1 -> print("x == 0 or x == 1")
    parseInt(s) -> print("s encodes x")
    else -> print("otherwise")
}

when也可以用来代替if-else链。即不提供参数,分支表达式以布尔表达式处理。

when {
    x.isOdd() -> print("x is odd")
    x.isEven() -> print("x is even")
    else -> print("x is funny")
}

对于Kotlin1.3,支持将when语句复制给变量。

上一篇下一篇

猜你喜欢

热点阅读