Kotlin在forEach中如何跳出循环和跳出当前循环体
数组的forEach中直接retrun
fun main(args: Array<String>) {
val arr = intArrayOf(1,2,3,4,5,6,7)
arr.forEach {
if (it == 4) return
println("value:$it")
}
println("this is End")
}
那么输出结果是
可以看到程序程序在遍历到4的时候就退出了方法,而且this is End也没有打印,我若果只想在数组遍历到4的时候跳出forEach,forEeach后面的语句还继续执行,实现类似java中的continue,那么应该怎么做呢?
continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环。
实现代码:
fun main(args: Array<String>) {
val arr = intArrayOf(1,2,3,4,5,6,7)
arr.forEach continuing@{
if (it == 4) return@continuing
println("value:$it")
}
println("this is End")
}
运行结果:
可以看到在遍历到4的时候直接跳出了此次循环,假设当遍历到4的时候,想要直接跳出遍历循环,实现类似java中的break的作用,那么应该怎么做呢?
实现代码:
fun main(args: Array<String>) {
val arr = intArrayOf(1,2,3,4,5,6,7)
run breaking@{
arr.forEach continuing@{
if (it == 4) return@breaking
println("value:$it")
}
}
println("this is End")
}
运行结果:
可以看到的是在数据遍历到4的时候,直接就跳出了循环体,继续运行下面的代码,实现了在kotlin的forEach中类似java的break的效果。