Kotlin when 语句将它的参数和所有的分支条件顺序比较,直到某个分支满足条件
when 既可以被当做表达式使用也可以被当做语句使用
1、 如果它被当做表达式,符合条件的分支的值就是整个表达式的值;
2、 如果当做语句使用,则忽略个别分支的值;
Kotlin when 语句范例
// filename: main.kt
// author: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
// Copyright © 2015-2065 www.ddkk.com. All rights reserved.
fun main(args: Array<String>) {
var x = 2
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
}
}
输出结果为
x == 2
when..else 语句
Kotlin when 语句中如果其他分支都不满足条件将会求值 else 分支
when..else 语句范例
// filename: main.kt
// author: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
// Copyright © 2015-2065 www.ddkk.com. All rights reserved.
fun main(args: Array<String>) {
var x = 3
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> print("x > 2")
}
}
编译运行以上 Kotlin 范例,输出结果如下
$ kotlinc main.kt -include-runtime -d main.jar
$ java -jar main.jar
x > 2
如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔
// filename: main.kt
// author: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
// Copyright © 2015-2065 www.ddkk.com. All rights reserved.
fun main(args: Array<String>) {
var x = 3
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("otherwise")
}
}
编译运行以上 Kotlin 范例,输出结果如下
$ kotlinc main.kt -include-runtime -d main.jar
$ java -jar main.jar
otherwise
when 也可以用来取代 if-else if 链
如果不提供参数,所有的分支条件都是简单的布尔表达式,而当一个分支的条件为真时则执行该分支:
// filename: main.kt
// author: DDKK.COM 弟弟快看,程序员编程资料站(www.ddkk.com)
// Copyright © 2015-2065 www.ddkk.com. All rights reserved.
fun main(args: Array<String>) {
var x = 3
when {
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
}
编译运行以上 Kotlin 范例,输出结果如下
$ kotlinc main.kt -include-runtime -d main.jar
$ java -jar main.jar
x is odd