美文网首页
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:条件控制

    条件控制是每门编程语言中必不可少的,一般就是我们熟知的 if - else ,来作为我们代码逻辑选择条件控制。在 ...

  • Kevin Learn Kotlin:循环控制

    循环控制语句也是每门语言不可缺少的一部分,Java 中主要有两种循环语句:while 循环和 for 循环。Kot...

  • Kevin Learn Kotlin:函数

    Kotlin 的方法 变量 Kotlin 中定义一个变量,只允许在变量前声明两种关键字:val 和 var。 va...

  • Kevin Learn Kotlin:委托

    Kotlin 通过关键字 by 实现委托。 类委托 类的委托即一个类中定义的方法实际是调用另一个类的对象的方法来实...

  • Kevin Learn Kotlin:Kotlin 学习资料

    Кotlin 是一种在 Java 虚拟机上运行的现代编程语言。它具有优雅的语法,并且可以与所有现有的 Java 库...

  • Kevin Learn Kotlin:From Java to

    虽然 Kotlin 的开发很方便,但当你与他人协作时,总会碰到 Java 与 Kotlin 代码共存的代码项目。 ...

  • Kevin Learn Kotlin:协程

    什么是协程 协程就像非常轻量级的线程。线程是由系统调度的,线程切换或线程阻塞的开销都比较大。而协程依赖于线程,但是...

  • Kevin Learn Kotlin:Hello World

    思维导图 搭建开发环境 安装 Android StudioAndroid Studio 下载官网[https://...

  • Kevin Learn Kotlin:泛型

    Kotlin 的泛型与 Java 一样,都是一种语法糖。泛型其实就是把类型参数化,它的引入给强类型编程语言加入了更...

  • Kotlin学习之流程控制

    Kotlin学习之流程控制 @(Kotlin学习) Kotlin的流程控制,可以分为条件语句和循环语句。 一、条件...

网友评论

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

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