Kotlin更灵活的条件控制
除了文字版本,也有Xmind版本 github地址
本文一问:
① 没有分号,你要注意什么?《Kotlin入门-没有分号是个有趣的事情》
有以下几个方面
- if…else
- x…y
- when
if…else
先看一个范例
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
直接赋值给变量➕var的定义,给人一种javascript的感觉。其实大体跟java是一样的
Java也可以这样做。只是,一般我们不这样写,不符合编码规范,不利于代码阅读。
val result = if (condition) resA else resB
其实,这种写法,java也是有的。
x…y
代表在x和y之间
if (x in 1..8) { //# x>= 1 && x <= 8
println("x 在区间内")
}
表示要给范围从1到8之间。比java要简洁。
When 表达式
在Kotlin中,when更类似switch。可以组合各种条件判断进行使用。
使用else,来表示剩余情况,类似switch的default
fun testWhen(inputV : Int) {
when (inputV) {
1 -> println("x == 1")
2 -> println("x == 2")
11 -> println("x == 11")
in 3..6 -> println("x in 3..6")
!in (8..9) -> println("x not 8")
10 -> println("x == 10")
else -> { // 注意这个块
println("x 不是不是都不是")
}
}
}
fun main() {
(testWhen(3))
(testWhen(5))
(testWhen(6))
(testWhen(8))
(testWhen(9))
(testWhen(10))
(testWhen(11))
}
输出
x in 3..6
x in 3..6
x in 3..6
x 不是不是都不是
x 不是不是都不是
x not 8
x == 11
注意
when在条件判断时,也是有先后顺序的。
前面被判断成功后,后面的语句就不会执行。