Kevin Learn Kotlin:条件控制

2021-12-03  本文已影响0人  Kevin_小飞象
每日一图.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
}
上一篇下一篇

猜你喜欢

热点阅读