// kotlin 条件控制
fun main(args : Array<String>){
//if 表达式
var a = 1
var b = 2
var max = a
// 普通用法
if(a < b)
max = b
println(max)
//使用else
var max2:Int
// if else 用法
if(a > b)
max2 = a
else
max2 = b
println(max2)
//作为表达式
var max3 = if(a < b) b else a
println(max3)
//把if的结果复制给一个变量
var max4 = if(a < b){
println("choose a")
a
}else{
println("choose b")
b
}
println(max4)
//这也说明我也不需要像Java那种有一个三元操作符,因为我们可以使用它来简单实现:
var max5 = if(a > b) a else b
println(max5)
var c = if(a > b ) a else b
println("c = $c ")
//使用区间
if(a in 1..9){
println("$a 在区间内")
}
if(b in 1..8){
println("$b 在区间内")
}
//When 表达式
//when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。
//when 既可以被当做表达式使用也可以被当做语句使用。
// 如果它被当做表达式,符合条件的分支的值就是整个表达式的值,如果当做语句使用, 则忽略个别分支的值。
//when 类似其他语言的 switch 操作符。其最简单的形式如下:
//在 when 中,else 同 switch 的 default。如果其他分支都不满足条件将会求值 else 分支。
when(a){
1 -> println("a == 1")
2 -> println("a == 2")
else ->{
println("a 不是1,也不是2")
}
}
when1(c)
when2(c)
println(hasPrefix("abcdd"))
println(hasPrefix("prefixabcd"))
println(hasPrefix(1234))
//when 中使用 in 运算符来判断集合内是否包含某实例:
val items = arrayOf("apple","banana","kiwi" )
when{
"orange" in items -> println("juicy")
"apple" in items -> println("apple is fun too")
"banana" in items -> println("banana is fun too")
"kiwi" in items -> println("kiwi is fun too")
}
when{
"orange" in items -> println("juicy")
"banana" in items -> println("banana is fun too")
"kiwi" in items -> println("kiwi is fun too")
}
}
//另一种可能性是检测一个值是(is)或者不是(!is)一个特定类型的值。
// 注意: 由于智能转换,你可以访问该类型的方法和属性而无需 任何额外的检测。
fun hasPrefix(x : Any) = when(x){
is String -> x.startsWith("prefix")
else -> false
}
//如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:
fun when1(a:Int):Unit{
when(a){
1,2 -> println("a == 1 or a == 2")
else ->{
println("a 不是1 , 也不是2")
}
}
}
//我们也可以检测一个值在(in)或者不在(!in)一个区间或者集合中:
fun when2(a : Int):Unit{
when(a){
in 1..10 -> println("a is in the range")
!in 10..20 -> println("a is outside the range")
else -> println("none of the above")
}
}
kotlin 第三站
最新推荐文章于 2023-12-20 23:22:13 发布