美文网首页kotlin
19. when表达式

19. when表达式

作者: 写代码的向日葵 | 来源:发表于2019-09-26 01:20 被阅读0次

1.正常使用

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}

fun todo(age: Int) = when (age) {
    7 -> "开始上小学"
    12 -> "开始上中学"
    15 -> "开始上高中"
    18 -> "开始上大学"
    else -> "开始上社会大学"
}

2.when加强

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}

fun todo(age: Int) = when (age) {
    in 1..6 -> "没有上小学"
    7->"开始上小学"
    in 8..11 -> "开始上中学"
    in 12..15 -> "开始上高中"
    in 16..18 -> "开始上大学"
    else -> "开始上社会大学"
}

相比java,区间更加方便

3.kotlin中when表达式原理

可以看到编译后的java代码如下:

image.png
简单的when表达式通过switch语句来实现,复杂的when表达式通过if-else来实现

4.when表达式不带参数

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}
fun todo(age: Int) =
    when {
        age == 7 -> "开始上小学"
        age == 12 -> "开始上高中"
        age == 15 -> "开始上大学"
        else -> "开始上社会大学"
    }

5.when表达式返回值

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}

fun todo(age: Int): String {
    return when {
        age == 7 ->{
            10//写"开始上小学后面会报错"
            "开始上小学"
        }
        age == 12 -> "开始上高中"
        age == 15 -> "开始上大学"
        else -> "开始上社会大学"
    }
}

when表达式的返回值在大括号最后一行

相关文章

  • 19. when表达式

    1.正常使用 2.when加强 相比java,区间更加方便 3.kotlin中when表达式原理 可以看到编译后的...

  • Android之switch:Kotlin的when表达式

    Kotlin的when表达式

  • Kotlin 条件控制

    IF 表达式 When 表达式when 类似其他语言的 switch 操作符。其最简单的形式如下: 我们也可以检测...

  • mysql 流程控制语句 笔记!

    一般查询用法: 批量更新用法: case when: case null when 表达式 then 执行...

  • kotlin基础之三 流程控制,函数

    1.when表达式 when取代了C风格语言的switch。相较switch而言,when语句显得更加的强大,灵活...

  • When 表达式

    when 取代了类 C 语言的 switch 操作符。其最简单的形式如下: when 将它的参数与所有的分支条件顺...

  • SQL操作指南七(CASE表达式)

    CASE表达式的语法CASE表达式的语法分为简单CASE表达式和搜索CASE表达式。 WHEN 子句中的<判断表达...

  • 【第3篇】Kotlin的控制流详解

    1、 控制流:if、when、for、while 1.1 if 表达式 在 Kotlin 中,if是一个表达式,即...

  • kotlin流程控制

    if表达式可实现赋值操作: when表达式代替switch/case Range 表达式使用一个 .. 操作符,它...

  • 条件控制

    When 表达式 when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。 when 既可以被当做表达...

网友评论

    本文标题:19. when表达式

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