Android kotlin学习——5.Kotlin条件控制

98 阅读2分钟

Kotlin条件控制

条件控制是每门编程语言中必不可少的,一般就是使用我们所熟知的if-else,来作为我们代码逻辑选择条件控制。在java中一般使用if-elseswitch-case来作为条件控制,而在kotlin中则是使用if-elsewhen来作为条件控制。

image.png

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是何种数据类型: image.png

补充:上面代码中的is:是用于判断是何种类型

when表达式

在kotlin中使用when表达式代替了类似c语言的switch-case语句。最简单的形式如下:

  • when同样是带有返回值的
  • when将它的参数与所有的分支条件顺序比较,直到某个分支满足条件 image.png

image.png