1.與Java的相同點(diǎn)
以下Kotlin代碼跟Java,使用return、break、continue關(guān)鍵字效果一致。
index==3 return,結(jié)束該次循環(huán),跳出循環(huán)體,forTest方法返回,不會打印“outside”;
index==3 break,結(jié)束該次循環(huán),跳出循環(huán)體,會打印“outside”;
index==3 continue,結(jié)束該次循環(huán),執(zhí)行下一次循環(huán),最后會打印“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//相當(dāng)于Java的return
if (index == 3) break//相當(dāng)于Java的break
if (index == 3) continue//相當(dāng)于Java的continue
println("forTest it=${list[index]}")
}
println("forTest outside")
}
2.與Java的不同點(diǎn)
2.1 自定義標(biāo)簽
looper@是自定義標(biāo)簽,用于標(biāo)記某個位置,格式:xxx@;
break@looper,相當(dāng)于Java的break;
continue@looper,相當(dāng)于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//相當(dāng)于Java的break
// if (index == 3) continue@looper//相當(dāng)于Java的continue
// if (index == 3) return@looper//這是不合法的
println("forTest1 it=${list[index]}")
}
println("forTest1 outside")
}
2.2 forEach遍歷
forEach,用迭代器遍歷集合;
return@forEach,相當(dāng)于Java的 continue;
return,相當(dāng)于Java 的return;
continue,在這里是不合法的;
fun forTest() {
val list = mutableListOf(1, 2, 3, 4, 5)
list.forEach {
if (it == 4) {
// return@forEach//相當(dāng)于Java的 continue
return //相當(dāng)于Java 的return
}
println("it=${it}")
}
println("outside")
}
以上分析有不對的地方,請指出,互相學(xué)習(xí),謝謝哦!