Kotlin在forEach中如何跳出循环和跳出当前循环体

9,494 阅读1分钟

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的效果。