在 Java 中,continue 本身只能跳过当前这一层循环的本次迭代,不能直接跳出多层循环。如果你想要“在多层循环中,跳过外层循环的某一次(相当于从内层 continue 到外层)”,常见有以下几种做法:
continue(推荐)Java 支持标签(label)+ continue,可以跳出到指定标签所在的循环层级。
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) {
continue outer; // 跳过外层循环的本次迭代
}
System.out.println("i=" + i + ", j=" + j);
}
}
执行效果:
j == 1 时,直接跳回 outer 循环,进入 i+1输出:
i=0, j=0
i=1, j=0
i=2, j=0
for (int i = 0; i < 3; i++) {
boolean skip = false;
for (int j = 0; j < 3; j++) {
if (j == 1) {
skip = true;
break;
}
}
if (skip) continue;
System.out.println("i=" + i);
}
适合不习惯 label 或代码较简单的情况。
for (int i = 0; i < 3; i++) {
if (needSkip(i)) continue;
System.out.println("i=" + i);
}
boolean needSkip(int i) {
for (int j = 0; j < 3; j++) {
if (j == 1) return true;
}
return false;
}
适合逻辑复杂、可读性要求高的场景。
continue; // 只能跳过当前层
break; // 只能跳出当前层
它们都不能直接跳出多层循环,除非配合 label。
| 方式 | 是否推荐 | 说明 |
|---|---|---|
continue label |
⭐⭐⭐⭐ | Java 原生支持,简洁 |
| 布尔变量 | ⭐⭐⭐ | 可读性好,稍啰嗦 |
| 方法封装 | ⭐⭐⭐⭐ | 逻辑复杂时最佳 |
如果你愿意,我可以帮你把具体业务代码改成多层 continue 的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。