美文网首页Kotlin编程kotlinAndroid开发之Kotlin
从零开始学Kotlin-控制语句(4)

从零开始学Kotlin-控制语句(4)

作者: SiberianDante | 来源:发表于2018-01-15 22:53 被阅读42次

    从零开始学Kotlin基础篇系列文章

    条件控制-if

            var a=10
            var b=20
            if(a>b) print(a)
            if(a>b){
                print(a)
            }else{
                print(b)
            }
            val max = if( a > b) a else b
            if ( a in 1..10){
                print("a在1到10区间内")
            }
    

    条件控制-when

            val x = 3
            when (x) {
                1 -> print("x 是1")
                2 -> print("x 是2")
                else -> print("x 不是1也不是2")
            }
            when (x) {
                1, 2 -> print("x 是1或者2")
                else -> print("x 不是1也不是2")
            }
            when (x) {
                in 1..5 -> print("x 在1-5中")
                !in 5..10 -> print("x不在5-10中")
                else -> print("x 不是1也不是2")
            }
    

    循环控制-for

            val ints = arrayOf(1, 2, 3, 4, 5)
            for (num: Int in ints) {//循环遍历数值
                print((num))
            }
            for (index in ints.indices) {//循环遍历索引和值
                print("$index 位置的数是 ${ints[index]}")
            }
    

    循环控制-while/do...while

            var a = 10
            while (a < 10) {
                print("a < 10")
                a++
            }
            do {
                print("先输出一下再去判断")
                a++
            } while (a < 10)
    

    跳转表达式 return、break、continue

    • 常规用法
        for (i in 1..10) {
            if (i == 3) continue//i==3时跳出该循环执行下一轮循环
                print(i)
            if (i > 5) break//i>5时跳出循环或者说终止循环
            if (i == 8) return //i==8时终止循环以及终止以下步骤
         }
    
    • 在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:name@、number@等
    number@ for (i in 1..10){
    }
    
    • 标签结合break和continue使用
            loop1@ for (i in 1..100) {
                loop2@ for (j in 1..100) {
                    if (i == j) break@loop1
                    if (i % j == 0) continue@loop1
                }
            }
    
    • 标签结合return使用
        fun test5() {
            var ints = arrayOf(0, 1, 2, 3, 4, 5)
            /**
             * 这种return其实是直接return了test5()这个方法
             */
            ints.forEach {
                if (it == 0) return
                print(it)
            }
            /**
             * 如果想只return到当前循环,则需要结合标签使用
             */
            ints.forEach currentLoop@ {
                if (it == 0) return@currentLoop
                print(it)
            }
        }
    

    从零开始学Kotlin基础篇系列文章

    相关文章

      网友评论

        本文标题:从零开始学Kotlin-控制语句(4)

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