美文网首页
Kevin Learn Kotlin:条件控制

Kevin Learn Kotlin:条件控制

作者: Kevin_小飞象 | 来源:发表于2021-12-03 15:37 被阅读0次
    每日一图.jpg

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


    17.png

    if 表达式

    带返回值 if 表达式

    在 Kotlin 中,if 是一个表达式所以它会返回一个值,表达式的值为表达式作用域内最后一行的值。这一点和 Java 是不同的,在 Java 中 if 仅仅是语句。

    fun main() {
        println("${maxOf(6,9)}")
        println("${maxOf2(6,9)}")
    }
    
    fun maxOf(num1: Int,num2: Int):Int {
        var value = 0
        if (num1 > num2) {
            value = num1
        }else {
            value = num2
        }
        return value
    }
    
    fun maxOf2(num1: Int,num2: Int):Int {
        return if (num1 > num2) num1 else num2
    }
    

    if 表达式替代三目运算

    Java 中的三目运算:

    public int maxOf(int num1, int num2) {
            return num1 > num2 ? a : b;
    }
    

    Kotlin 中的 if 表达式:

    fun maxOf(num1: Int,num2: Int) = if (num1 > num2) num1 else num2
    

    when 表达式

    在 Kotlin 中使用 when 表达式代替了 Java 语言中的 switch - case 语句。
    需求1:编写一个查询考试成绩的功能。

    fun main() {
        println("Kevin 的数学成绩:${getScore("Kevin")}")
    }
    
    fun getScore(name: String) = when (name){
        "Kevin" -> 98
        "Tom" -> 80
        "David" -> 90
        "Jack" -> 85
        else -> 0
    }
    

    需求2:判断输入的数据是什么?

    fun main() {
        println("9F 是什么数字:${eval(9F)}")
    }
    
    fun eval(num: Number) : String = when (num){
        is Int -> "this is int number"
        is Double -> "this is double number"
        is Float -> "this is float number"
        is Long -> "this is long number"
        is Byte -> "this is byte number"
        is Short -> "this is short number"
        else -> "invalid number"
    }
    

    when 表达式的增强

    从 Kotlin 1.3 版本后对when 表达式做了一个写法上的优化:小括号中的条件可以动态赋值。

    fun main() {
        println("100F 是什么数字:${eval()}")
    }
    
    fun eval() : String {
        return when (getValue()) {
            is Int -> "this is int number"
            is Double -> "this is double number"
            is Float -> "this is float number"
            is Long -> "this is long number"
            is Byte -> "this is byte number"
            is Short -> "this is short number"
            else -> "invalid number"
        }
    }
    
    // Any 类似 Java 中的 Object
    fun getValue(): Any {
        return 100F
    }
    

    相关文章

      网友评论

          本文标题:Kevin Learn Kotlin:条件控制

          本文链接:https://www.haomeiwen.com/subject/gjmfxrtx.html