class demo_条件控制 {
@Test
fun main(){
println(maxNum(5,10))
println(maxNum2(5,10))
}
// if表达式
//Java中if中可以没有返回值 Kotlin中必须有返回值
fun maxNum(a:Int,b:Int):Int{
if (a>b){
return a
}else{
return b
}
return -1
}
//简化版
fun maxNum2(a:Int,b:Int):Int{
//三目运算 替代Java中 a>b?a:b
return if(a>b) a else b
}
fun eval(number:Number):String{
//is 是判断是否是某一种类型
if (number is Int){
return "整形"
}else if (number is Double){
return "浮点形"
}
return "-1"
}
}
when 用法
class demo_条件控制 {
@Test
fun main(){
println(eval(5.11))
println("when使用:${eval2(5L)}")
}
fun eval(number:Number):String{
//is 是判断是否是某一种类型
if (number is Int){
return "整形"
}else if (number is Double){
return "浮点形"
}
return "-1"
}
//when 表达式 替代Java c 语言中 switch——case语句
//when 同样是带有返回值的
//when 将它的参数与所有分支条件顺序比较 知道猫族某个分支
fun eval2(number: Number):String = when (number){
100 ->"传入了100"
is Int ->"整型"
is Double ->"double型"
is Long ->{
"代码块中最后一行就是when返回值"
"Long型"
}
else->"未定义类型" //必须加上else分支 当上方条件都不满足返回 异常处理
}
}
when 增强版 动态给条件赋值
class demo_条件控制 {
@Test
fun main(){
println("when增强使用:${eval3()}")
}
//when 增强版 可以对when中条件动态赋值
fun eval3():String {
return when (val value = getValue()){
12 ->"传入了12"
is Int ->"整型"
is Double ->"double型"
is Long ->{
"代码块中最后一行就是when返回值"
"Long型"
}
else->"未定义类型" //必须加上else分支 当上方条件都不满足返回 异常处理
}
}
fun getValue(): Any {
return 100L
}
}