Kotlin条件控制
条件控制是每门编程语言中必不可少的,一般就是使用我们所熟知的if-else,来作为我们代码逻辑选择条件控制。在java中一般使用if-else和switch-case来作为条件控制,而在kotlin中则是使用if-else和when来作为条件控制。
if表达式
1.带返回值if表达式:
在kotlin中,if是一个表达式所以它会返回一个值,表达式的值为表达式作用域内最后一行的值。这一点和java是不同的,在java中if仅仅是语句
fun main(){
println("maxOf:${maxOf(5,10)}")
//打印:maxOf:10
}
fun maxOf(a:Int,b:Int):Int{
if(a>b){
return a
}else{
return b
}
}
fun maxOf2(a:Int,b:Int):Int{
return if(a>b) a else b
}
2.if表达式替代三目运算符:
因为在kotlin中if表达式是带有返回值的,所以在kotlin中是不需要三目运算符(xxx?xxx:xxx),因为if表达式这些都能做到。
//java中三目运算符
public int maxOf(int a,int b){
return a > b ? a : b
}
而在kotlin中则可以直接使用if表达式来使用:
//kotlin中的if表达式
fun maxOf(a: Int, b: Int)=if (a > b) a else b
tips:如果你使用if作为表达式而不是语句(例如:返回它的值或者把它赋给变量),该表达式需要有else分支
3.多级if表达式:
和java一样kotlin也支持if-else if-else等多级条件选择,但是一般如果这种带多级条件选择的IDE会提示你使用when表达式来代替:
案例:使用if-else if-else来判断变量number是何种数据类型:
补充:上面代码中的is:是用于判断是何种类型
when表达式
在kotlin中使用when表达式代替了类似c语言的switch-case语句。最简单的形式如下:
- when同样是带有返回值的
- when将它的参数与所有的分支条件顺序比较,直到某个分支满足条件