Kotlin 退出循环总结

文章目录

  • Kotlin 退出循环总结
    • for循环
    • forEach()
    • 嵌套for循环
    • lambda函数
    • inline函数

Kotlin 退出循环总结

for循环

for ((index, value) in list.withIndex()) {
    if (value == "c") {
        break // 退出循环
    }
    println("$index - $value")
}

//    0 - a
//    1 - b

forEach()

list.forEach {
    if (it == "c") {
        return@forEach // 退出单次循环,类似for循环中的continue
    }
    println(it)
}

//    a
//    b
//    d
//    e
run loop@{
    list.forEach {
        if (it == "c") {
            return@loop // 退出循环
        }
        println(it)
    }
}

//    a
//    b
list.takeWhile { it != "c" }
    .forEach {
        println(it)
    }

//    a
//    b

嵌套for循环

for (i in 0..5) {
    for (j in 10..15) {
        if (j == 12) {
            break // 退出内层循环
        }
        println("$i - $j")
    }
}

//    0 - 10
//    0 - 11
//    1 - 10
//    1 - 11
//    2 - 10
//    2 - 11
//    3 - 10
//    3 - 11
//    4 - 10
//    4 - 11
//    5 - 10
//    5 - 11
outer@ for (i in 0..5) {
    for (j in 10..15) {
        if (j == 12) {
            break@outer // 退出外层循环
        }
        println("$i - $j")
    }
}

//    0 - 10
//    0 - 11

lambda函数

fun myFun(block: () -> Unit) {
    block()
    println("lambda函数结束")
}

fun main() {
    println("开始")
    myFun {
        for (i in 1..5) {
            if (i == 3) {
                return@myFun // 退出lambda函数
            }
            println(i)
        }
    }
    println("结束")
}

//  开始
//  1
//  2
//  lambda函数结束
//  结束

inline函数

inline fun myInlineFun(block: () -> Unit) {
    block()
    println("inline函数结束")
}

fun main() {
    println("开始")
    myInlineFun {
        for (i in 1..3) {
            if (i == 2) {
                return // 结束main函数
            }
            println(i)
        }
    }
    println("结束")
}

//    开始
//    1
fun main() {
    println("开始")
    myInlineFun {
        for (i in 1..3) {
            if (i == 2) {
                return@myInlineFun // 结束inline函数
            }
            println(i)
        }
    }
    println("结束")
}

//  开始
//  1
//  inline函数结束
//  结束

你可能感兴趣的:(Kotlin,kotlin)