Java 中符合条件break & continue多层循环,打破 Java 中的嵌套循环?


问题:break只能跳出一层循环,如下:

while(true){
     for (int i = 1; i <= s; i++) {
         t2++;
         s2 += v2;
         if (s2 >= l) {
            System.out.println("T" + "\n" + t2);
            break; //if不算在内,该break只能跳出for循环,而不能跳出while循环
         }
     }
}

解决方法:可以使用语句标记的方法跳出多层循环,如下:

OUT:        //使用标记语句OUT,可以写其他语句,如a: b:等等
while(true){
    for (int i = 1; i <= s; i++) {
        t2++;
        s2 += v2;
        if (s2 >= l) {
       System.out.println("T" + "\n" + t2);
       break OUT; //直接跳出while语句
       }
}

或者 不使用 语句标记 如下

boolean broken = false; // 为了提高效率而在循环之外宣布
for (Type type : types) {
    for (Type t : types2) {
        if (some condition) {
            broken = true;
            break;
        }
    }

    if (broken) {
        break;
    }
}

声明:纯情阿丁|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Java 中符合条件break & continue多层循环,打破 Java 中的嵌套循环?


阿丁在Coding,等你成为我的朋友!