理论上foreach在执行的过程中是不允许跳出循环的,如果想要跳出循环,有以下几种方式。

  • 1.创建函数跳出循环。
fun breakTest() {
        (0..10).forEachIndexed { index, i ->
            Log.d("test start index=$index,i=$i")
            if (index >= 7) {
                return
            }
            Log.d("test end index=$index,i=$i")
        }
    }
  • 2.通过run语句,将会在if判断语句为true的时候跳出run代码块
run outSide@{
    (0..10).forEachIndexed { index, i ->
        Log.d("test start index=$index,i=$i")
        if (index >= 7) {
            return@outSide
        }
        Log.d("test end index=$index,i=$i")
    }
}
  • 3.类似于continue,如果if语句为true,将会继续下一轮的forEach代码块。
(0..10).forEachIndexed { index, i ->
    Log.d("test start index=$index,i=$i")
    if (index >= 7) {
        return@forEachIndexed
    }
    Log.d("test end index=$index,i=$i")
}
  • 4.执行结果如下:
    在这里插入图片描述

更多推荐