Android开发Android进阶Android开发

Kotlin流程控制-控制循环结构

2019-07-02  本文已影响11人  程序员丶星霖

Kotlin提供了continue和break来控制循环结构。除此之外,使用return可以结束整个方法。

一、使用break结束循环

需要在某种条件出现时强行中止循环,而不是等到循环条件为false时才退出循环,可以使用break来完成此功能

break用于完全结束一个循环,跳出循环体。

    for (i in 0..10) {
        println("i的值是:${i}")
        if (i == 2) {
            //结束循环
            break
        }
    }

输出结果:

i的值是:0
i的值是:1
i的值是:2

使用break语句不仅可以结束其所在的循环,还可以直接结束其外层循环。需要在break后紧跟一个标签,用于标识一个外层循环。

Kotlin中的标签就是一个紧跟着@的标识符。Kotlin中的标签只有放在循环语句或switch语句之前才起作用。

    //外层循环
    outer@ for (i in 0..10) {
        for (j in 0 until 3) {
            println("i的值为:${i},j的值为:${j}")
            if (j == 1) {
                //跳出outer标签所标识的循环
                break@outer
            }
        }
    }

输出结果:

i的值为:0,j的值为:0
i的值为:0,j的值为:1

break后的标签必须是一个有效的标签,即这个标签必须在break语句所在的循环之前定义,或在其所在循环的外层循环之前定义。

二、使用continue忽略本次循环的剩下语句

continue和break有点类似,区别是:

    for (i in 0 until 3) {
        println("i的值是${i}")
        if (i == 1) {
            //忽略本次循环的剩下语句
            continue
        }
        println("continue后的输出语句")
    }

输出结果:

i的值是0
continue后的输出语句
i的值是1
i的值是2
continue后的输出语句

continue也可以紧跟一个标签,用于直接跳过标签所标识循环的档次循环剩下语句,重新开始下一次循环。

   //外层循环
    outer@ for (i in 0 until 5) {
        //内层循环
        for (j in 0 until 3) {
            println("i的值为:${i},j的值为:${j}")
            if (j == 1) {
                //忽略outer标签所指定的循环中档次循环剩下的语句
                continue@outer
            }
        }
    }

输出结果:

i的值为:0,j的值为:0
i的值为:0,j的值为:1
i的值为:1,j的值为:0
i的值为:1,j的值为:1
i的值为:2,j的值为:0
i的值为:2,j的值为:1
i的值为:3,j的值为:0
i的值为:3,j的值为:1
i的值为:4,j的值为:0
i的值为:4,j的值为:1

三、使用return结束方法

return用于从最直接包围它的方法、函数或者匿名函数返回。

当函数或方法执行到一条return语句时,这个函数或方法将被结束。

fun main(args: Array<String>) {
    test()
}

fun test(){
    for (i in 0 until 10) {
        println("i的值是:${i}")
        if (i == 1) {
            return
        }
        println("return后的输出语句")
    }
}

输出结果:

i的值是:0
return后的输出语句
i的值是:1

return并不是专门用于控制循环结构的关键字,但通过return语句确实可以结束一个循环。

与continue和break不同的是,return直接结束整个函数或方法,而不管return处于多少层循环之内

学海无涯苦作舟

我的微信公众号.jpg
上一篇 下一篇

猜你喜欢

热点阅读