[Kotlin] More Advanced "when" Constructs

Difference between "when" and Javascript "switch". 

 

In Switch, you have to call "break"; but "when", you don't need to.

In Switch, the case expression can only be string / integer value; but "when" can be any expressions.

 

复制代码
fun main() {
    val mode = 10
    
    when (mode) {
        5 -> println("mode is 5")
        3*5 -> println("mode is 15")
        "Hey there".length -> println("value is string")
        in 1..10 -> println("mode is between 1 and 10")
        in 11..20 -> println("mode is between 11 and 20")
        in 21..30 -> println("mode is between 31 and 30")
        !in 1..9 -> println("mode is not between 1 and 9")
    }

}
// mode is between 1 and 10
复制代码

 

复制代码
fun main() {
    val random = Random().nextInt(50) + 1

    when (random) {
        in 1..10 -> println("In 1 to 10: $random")
        in 11..20 -> println("In 11 to 20: $random")
        in 21..30 -> println("In 21 to 30: $random")
        in 31..40 -> println("In 31 to 40: $random")
        else -> println("Over 40: $random")
    }

} // In 31 to 40: 35
复制代码

 

posted @   Zhentiw  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-10-11 [Angular] Expose Angular Component Logic Using State Reducers
2015-10-11 [AngularJS] Sane, scalable Angular apps are tricky, but not impossible.
点击右上角即可分享
微信分享提示