Kotlin基础-条件控制

目录

一、if-else

1、if表达式

2、if表达式替代三目运算符

3、if多级嵌套

二、when

1、when表达式

 2、when表达式增强版


条件控制是每门编程语言中必不可少的,一般就是使用我们所熟知的if-else,来作为我们代码逻辑选择条件控制。在Java中,一般我们是用if-else,swicth-case来作为条件控制,而在Kotlin中,是没有swicth-case的,使用if-else和when。

一、if-else

1、if表达式

在kotlin中,if是一个表达式所以它会返回一个值,表达式的值作为表达式作用域的最后一行返回,这一点和java不同,在java中,if仅仅代表条件控制语句,而在kotlin中,if不仅是语句。

fun main() {
    println("max:${max(1,3)}")
}

fun max(a:Int,b:Int):Int{
    return if(a>b) a else b
}

max:3

2、if表达式替代三目运算符

因为在kotlin中,if都是带有返回值的,因此kotlin是不需要三目运算符的(xxx?x:x),因为if表达式都能做到。

3、if多级嵌套

fun main() {

    eval(3)

}


fun eval(number: Number):Unit{
    if(number is Int){
        println("number is Int")
    }else if(number is Double){
        println("number is Double")
    }else if(number is Float){
        println("number is Float")
    }else if(number is Long){
        println("number is Long")
    }else if(number is Short){
        println("number is Short")
    }else if(number is Byte){
        println("number is Byte")
    }else
      println(IllegalArgumentException("invalid number"))
}

number is Int

二、when

1、when表达式

在kotlin中,when表达式替代了类似C语言,Java语言的swicth-case语句。也是有返回值的,其中最简单的形式如下

fun main() {

    eval(3f)

}


fun eval(number: Number):Unit{
    when (number) {
        is Int -> {
            println("number is Int")
        }

        is Double -> {
            println("number is Double")
        }

        is Float -> {
            println("number is Float")
        }

        is Long -> {
            println("number is Long")
        }

        is Short -> {
            println("number is Short")
        }

        is Byte -> {
            println("number is Byte")
        }

        else -> println(IllegalArgumentException("invalid number"))
    }
}

 number is Float

 2、when表达式增强版

自从Kotlin1.3版本后对when做了一个写法上的优化,也就是when()的参数可以动态赋值。

fun main() {

    eval3()

}


fun eval3():Unit{
    when (val v = getValue()) {
        is Int -> {
            println("number is Int")
        }

        is Double -> {
            println("number is Double")
        }

        is Float -> {
            println("number is Float")
        }

        is Long -> {
            println("number is Long")
        }

        is Short -> {
            println("number is Short")
        }

        is Byte -> {
            println("number is Byte")
        }

        else -> println(IllegalArgumentException("invalid number"))
    }
}


fun getValue():Any{
    return 100
}

number is Int

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunbofiy23

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值