Kotlin 条件控制 when 语句
Kotlin when 语句将它的参数和所有的分支条件顺序比较,直到某个分支满足条件
when 既可以被当做表达式使用也可以被当做语句使用
- 如果它被当做表达式,符合条件的分支的值就是整个表达式的值
- 如果当做语句使用, 则忽略个别分支的值
Kotlin when 语句范例
// filename: main.kt // author: 简单教程(www.twle.cn) // Copyright © 2015-2065 www.twle.cn. 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: 简单教程(www.twle.cn) // Copyright © 2015-2065 www.twle.cn. 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: 简单教程(www.twle.cn) // Copyright © 2015-2065 www.twle.cn. 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: 简单教程(www.twle.cn) // Copyright © 2015-2065 www.twle.cn. 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