杰瑞科技汇

Java中for循环如何跳出本次循环?

最常用和最直接的方法是使用 continue 关键字。

Java中for循环如何跳出本次循环?-图1
(图片来源网络,侵删)

下面我将详细解释 continue 的用法,并介绍其他相关概念(如 breakreturn)以帮助你彻底理解它们之间的区别。


使用 continue 关键字(最常用)

continue 语句用于立即终止当前的循环迭代,并跳转到循环的条件判断部分(对于 whiledo-while 循环)或迭代器更新部分(对于 for 循环),然后开始下一次迭代。

示例1:在 for 循环中使用 continue

这个例子会打印 1 到 10 之间的所有数字,但跳过能被 3 整除的数字。

public class ContinueExample {
    public static void main(String[] args) {
        System.out.println("使用 continue 跳过本次循环:");
        for (int i = 1; i <= 10; i++) {
            // i 能被 3 整除,就跳过本次循环的剩余代码
            if (i % 3 == 0) {
                System.out.println("跳过数字: " + i);
                continue; // 跳转到 for 循环的 i++ 部分
            }
            // 只有当 if 条件不满足时,这行代码才会被执行
            System.out.println("当前数字是: " + i);
        }
    }
}

输出结果:

Java中for循环如何跳出本次循环?-图2
(图片来源网络,侵删)
使用 continue 跳过本次循环:
当前数字是: 1
当前数字是: 2
跳过数字: 3
当前数字是: 4
当前数字是: 5
跳过数字: 6
当前数字是: 7
当前数字是: 8
跳过数字: 9
当前数字是: 10

分析:i 的值是 3, 6, 9 时,if (i % 3 == 0) 条件为真,continue 语句被执行,程序立即跳过 System.out.println("当前数字是: " + i); 这一行,直接执行 i++,然后进入下一次循环。

示例2:在 while 循环中使用 continue

while 循环中,continue 会跳转到循环的 while 条件判断部分。

public class ContinueWhileExample {
    public static void main(String[] args) {
        int i = 0;
        while (i < 5) {
            i++; // 必须小心,避免无限循环
            if (i == 3) {
                System.out.println("跳过数字: " + i);
                continue; // 跳转到 while (i < 5) 的判断
            }
            System.out.println("当前数字是: " + i);
        }
    }
}

输出结果:

当前数字是: 1
当前数字是: 2
跳过数字: 3
当前数字是: 4
当前数字是: 5

continue 与标签(Labeled continue)—— 跳出多层嵌套循环

如果你在一个嵌套循环中(比如一个循环在另一个循环内部),普通的 continue 只会跳出它所在的最内层循环,如果你想跳出外层的某个特定循环,可以使用带标签的 continue

语法: labelName: 放在循环语句的前面,continue labelName; 指定要跳转到哪个循环的下一次迭代。

示例:跳出外层循环

public class LabeledContinueExample {
    public static void main(String[] args) {
        outerLoop: // 为外层循环定义一个标签 "outerLoop"
        for (int i = 1; i <= 3; i++) {
            System.out.println("外层循环 i = " + i);
            for (int j = 1; j <= 3; j++) {
                System.out.println("  内层循环 j = " + j);
                if (j == 2) {
                    System.out.println("    j == 2,跳出外层循环的下一次迭代");
                    continue outerLoop; // 跳转到 outerLoop 循环的下一次迭代 (i++)
                }
            }
            System.out.println("  这行代码在普通 continue 时会执行,但在 labeled continue 不会执行");
        }
        System.out.println("程序结束");
    }
}

输出结果:

外层循环 i = 1
  内层循环 j = 1
    j == 2,跳出外层循环的下一次迭代
外层循环 i = 2
  内层循环 j = 1
    j == 2,跳出外层循环的下一次迭代
外层循环 i = 3
  内层循环 j = 1
    j == 2,跳出外层循环的下一次迭代
程序结束

分析:j 等于 2 时,continue outerLoop; 不是跳出内层循环,而是直接跳转到外层 for 循环的 i++ 部分,然后开始外层循环的下一次迭代,内层循环中 j 为 2 和 3 的代码以及外层循环中 continue 之后的代码都不会被执行。


continuebreak 的区别(非常重要)

初学者经常混淆 continuebreak,下面是它们的核心区别:

特性 continue break
作用 跳出本次循环,继续下一次循环。 跳出整个循环,循环终止。
影响范围 只影响它所在的一层循环(除非使用标签)。 只影响它所在的一层循环(除非使用标签)。
类比 “跳过这个,做下一个。” “不做了,到此为止。”

break 示例

public class BreakExample {
    public static void main(String[] args) {
        System.out.println("使用 break 跳出整个循环:");
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                System.out.println("i 等于 5,循环终止。");
                break; // 整个 for 循环结束
            }
            System.out.println("当前数字是: " + i);
        }
        System.out.println("程序结束");
    }
}

输出结果:

使用 break 跳出整个循环:
当前数字是: 1
当前数字是: 2
当前数字是: 3
当前数字是: 4
i 等于 5,循环终止。
程序结束

可以看到,当 i 为 5 时,break 执行后,循环完全停止,i 不会再增加到 6。


return 语句(跳出方法)

return 也可以用来“跳出循环”,但它有一个更彻底的效果:它会立即终止当前方法的执行,并返回一个值(如果方法有返回类型)。

public class ReturnExample {
    public static void printNumbers() {
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                System.out.println("i 等于 5,方法执行结束。");
                return; // 不仅跳出循环,也跳出了 printNumbers 整个方法
            }
            System.out.println("当前数字是: " + i);
        }
        System.out.println("这行代码不会被执行,因为方法已经返回了。");
    }
    public static void main(String[] args) {
        printNumbers();
        System.out.println("main 方法继续执行。");
    }
}

输出结果:

当前数字是: 1
当前数字是: 2
当前数字是: 3
当前数字是: 4
i 等于 5,方法执行结束。
main 方法继续执行。

关键字 作用 使用场景
continue 跳出本次循环,执行下一次循环。 当你满足某个条件时,想跳过当前迭代剩余的代码,过滤掉无效数据。
break 跳出整个循环,循环终止。 当你找到目标或遇到错误时,想立即停止整个循环,找到列表中的某个特定元素后不再查找。
return 跳出整个方法 当方法完成了它的核心任务或遇到无法继续执行的条件时。

  • 想要跳过本次,用 continue
  • 想要终止循环,用 break
  • 想要终止方法,用 return

对于“跳出本次循环”这个需求,continue 是最准确、最常用的选择。

分享:
扫描分享到社交APP
上一篇
下一篇