Kotlin学习 - 选择控制if 和when

本文介绍了Kotlin编程语言中的选择控制结构,包括if语句和when表达式的使用。if语句支持单行和多行形式,必须包含else分支以确保所有情况都被处理。when表达式提供了更灵活的匹配选项,如字符串、布尔值、区间等,并且在作为表达式使用时也需要else分支。
摘要由CSDN通过智能技术生成

Kotlin中的选择控制有两种方式:ifwhen

if选择语句

Kotlin的if语句和Java中的类似:

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

只有一行语句可以省略大括号,返回类型可自动推导出来,所以最后可以写成

fun max(a: Int, b: Int) = if (a > b) a else b

多条语句分支,Kotlin的if语句必须要有else,因为Kotlin编译器会强制检查默认选项 ,不然会报错。

fun getScore(name: String) = if (name == "Tom") "不及格"
else if (name == "Jim") "及格"
else if (name == "Pony") "良好"
else if (name == "Tony") "优秀"
else "名字非法"

Kotlin中 == 等价的是Java中equals比较的是对象中的内容, ===等价Java中==,比较的是对象的地址。

when选择语句

修改上面的例子,如果 when 作为一个表达式使用,则必须有 else 分支, 因为Kotlin编译器会强制检查默认选项 ,除非编译器能够检测出所有的可能情况都已经覆盖了。

fun getScore(name: String) = when(name) {
    "Tom" -> "不及格"
    "Jim" -> "及格"
    "Pony" -> "良好"
    "Tony" -> "优秀"
    else -> "名字非法"
}

when中参数可以省略,判断改成布尔类型:

fun getScore(name: String) = when {
    name == "Tom" -> "不及格"
    name == "Jim" -> "及格"
    name == "Pony" -> "良好"
    name == "Tony" -> "优秀"
    else -> "名字非法"
}

-> 后还可以有多行语句:

fun getScore(name: String) = when {
    //若name以Tom开头则命中此分支
    name.startsWith("Tom") -> {
        //处理
        println("你好,我是Tom开头的同学")
        "不及格"
    }
    name == "Jim" -> "及格"
    name == "Pony" -> "良好"
    name == "Tony" -> "优秀"
    else -> "名字非法"
}

分支条件可以是:Int对象,区间,方法,字符串,对象等

when (x) {
    0, 1 -> print("x == 0 or x == 1")
    in 2 -> print("x == 2")
    in 3..8 -> print("x == 3..8")
    parseInt(s)-> print("parseInt")
    is String -> print("x is String")
    else -> print("otherwise")
}

参考:
Kotlin学习-基础篇(一)
Kotlin基础学习-入门篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值