理论上foreach在执行的过程中是不允许跳出循环的,如果想要跳出循环,有以下几种方式。
- 创建函数跳出循环。
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")
}
}
- 通过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")
}
}
- 类似于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")
}
执行结果如下: