美文网首页
Kotlin基础(条件,分支,循环)

Kotlin基础(条件,分支,循环)

作者: zhujunhua | 来源:发表于2018-05-03 16:51 被阅读0次

    适合有java基础的,获取kotlin基础知识/语法等,Kotlin精讲-黑马程序员(原创)的学习笔记。

    1. if...else...

    在Kotlin里面,针对if…else语句,还可以有返回值,然后可以把if…else的返回值赋值给某一个变量。

    fun testIf() {
        var list = listOf<Int>(1, 2, 3)
        var age = 1
        // 可以使用 in 进行元素的判断
        if (age in list) {
            println("age is in list")
        }
    }
    

    2. when

    // when的两种用法
    fun testWhen() {
        var score = 99
        // when+变量
        when (score) {
            in 90..100 -> println("优")
            in 60 until 90 -> println("及格")
            else -> println("不及格")
        }
        // when不使用变量
        when {
            score >= 90 && score <= 100 -> println("优")
            score >= 60 && score < 90 -> println("及格")
            else -> println("不及格")
        }
    }
    

    “when关键字带变量”的语法形式,要根据变量类型,变量是不同的类型,支持的表达式也是不同的,
    比如变量是Int类型,可以有“类型判断、单值判断、多值判断、肯定存在判断、否定存在判断”。

    fun testWhen() {
        var num = 2
        var range = 1..5
        when (num) {
            // 类型判断
            is Int -> println("num is int type")
            // 单值判断
            2 -> println("num is 2")
            // 多值判断
            2,3 -> println("num is 2 or 3")
            // 肯定存在判断
            in range -> println("num is in range 2..4")
            // 否定存在判断
            !in 5..9 -> println("num is not in range 5..9")
            // else
            else -> println("num is in case else..")
        }
    }
    

    3. break/continue

    kotlin中可以为每一个循环指定一个名字,可以在break的时候指定需要跳出的循环的名字。
    continue也可以实现类似的跳转功能。

    // "xxx@"设定循环的名字
    fun testBreak() {
        loop1@for (i in 1..3) {
            loop2@for (j in 1..5) {
                if (j == 3) {
                    // break指定跳出某个循环
                    break@loop1
                }
                println("i = $i, j = $j")
            }
        }
    }
    

    参考:
    Kotlin精讲-黑马程序员(原创)

    相关文章

      网友评论

          本文标题:Kotlin基础(条件,分支,循环)

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