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函数结束
// 结束
posted @ 2025-07-28 18:17  yjbjingcha  阅读(12)  评论(0)    收藏  举报