使用continue替代break是一样的
//java使用label
public static void main(String[] args) {
List<String> strList = new ArrayList<>();
strList.add("a");
strList.add("b");
strList.add("c");
strList.add("d");
strList.add("e");
List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);
intList.add(4);
intList.add(5);
intList.add(6);
outer: for (int i = 0; i < intList.size(); i++) {
System.out.println(intList.get(i));
for (int t = 0; t < strList.size(); t++) {
if (strList.get(t).equals("b")){
break outer;
}
System.out.println(strList.get(t));
}
}
}
//kotlin也使用label,不过后面加上@
fun main() {
val strList = listOf("a", "b", "c", "d")
var intList = listOf(1,2,3,4,5,6)
outer@ for (i in intList) {
println(i)
for (s in strList) {
if (s == "b"){
break@outer
}
println(s)
}
}
}
//js的label使用方式和java类似
const arr = [1,2,3,4,5,6]
outer: for (let i = 0; i <10; i++) {
console.log(`a:${i}`)
if (i ===2){
for (let number of arr) {
console.log(number)
if ( number>3){
break outer
}
}
}
}
//dart的label和js还有java类似
main() async {
var intList = [1,2,3,4,5,6];
var strList = ["a","b","c","d","e"];
outer:for (var value in intList) {
print(value);
for (var str in strList) {
if(str == "b"){
break outer;
}
print(str);
}
}
}