在 Java 中,continue 本身只能用于跳过当前这次循环,不能直接“跳出多层循环”。但如果想通过 continue 实现跳过并控制多层循环,通常有以下几种常见做法:
Java 支持标签(label),可以对多层循环使用 continue label 来跳过外层循环的当前迭代。
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) {
continue outer; // 跳过外层循环的当前 i
}
System.out.println("i=" + i + ", j=" + j);
}
}
输出:
i=0, j=0
i=1, j=0
i=2, j=0
✅ continue outer 会直接跳到 outer 循环的下一次迭代
如果你想完全终止多层循环,应使用 break label:
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 1) {
break outer; // 直接结束所有循环
}
}
}
⚠️ 这不是 continue,而是终止循环
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;
}
void process() {
for (int i = 0; i < 3; i++) {
if (shouldSkip(i)) continue;
}
}
boolean shouldSkip(int i) {
for (int j = 0; j < 3; j++) {
if (j == 1) return true;
}
return false;
}
| 需求 | 推荐方式 |
|---|---|
| 跳过外层循环当前轮 | continue label |
| 完全退出多层循环 | break label |
| 逻辑复杂 | 抽成方法 |
如果你有具体的嵌套循环代码,我可以帮你改成最合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。