1.与Java的相同点
以下Kotlin代码跟Java,使用return、break、continue关键字效果一致。
index==3 return,结束该次循环,跳出循环体,forTest方法返回,不会打印“outside”;
index==3 break,结束该次循环,跳出循环体,会打印“outside”;
index==3 continue,结束该次循环,执行下一次循环,最后会打印“outside”;
for(xxx in xxx){},这种方式使用return、break、continue跟Java一致;
fun forTest() {
val list = mutableListOf(1, 2, 3, 4, 5)
for (index in 0 until list.size) {
// if (index == 3) return//相当于Java的return
if (index == 3) break//相当于Java的break
if (index == 3) continue//相当于Java的continue
println("forTest it=${list[index]}")
}
println("forTest outside")
}
2.与Java的不同点
2.1 自定义标签
looper@是自定义标签,用于标记某个位置,格式:xxx@;
break@looper,相当于Java的break;
continue@looper,相当于Java的continue;
return@looper,这是不合法的;
fun forTest() {
val list = mutableListOf(1, 2, 3, 4, 5)
looper@ for (index in 0 until list.size) {
if (index == 3) break@looper//相当于Java的break
// if (index == 3) continue@looper//相当于Java的continue
// if (index == 3) return@looper//这是不合法的
println("forTest1 it=${list[index]}")
}
println("forTest1 outside")
}
2.2 forEach遍历
forEach,用迭代器遍历集合;
return@forEach,相当于Java的 continue;
return,相当于Java 的return;
continue,在这里是不合法的;
fun forTest() {
val list = mutableListOf(1, 2, 3, 4, 5)
list.forEach {
if (it == 4) {
// return@forEach//相当于Java的 continue
return //相当于Java 的return
}
println("it=${it}")
}
println("outside")
}
以上分析有不对的地方,请指出,互相学习,谢谢哦!
网友评论