杰瑞科技汇

java break跳出for循环

核心概念

break 是一个关键字,它的作用是立即终止并退出当前所在的循环,当程序执行到 break 语句时,循环会立刻停止,不再执行后续的循环体代码,也不会再进行循环条件的判断,程序会继续执行循环体之后的下一条语句。

java break跳出for循环-图1
(图片来源网络,侵删)

在基本的 for 循环中使用 break

这是最常见和最直接的使用场景,通常我们会结合 if 条件来判断,在满足某个特定条件时退出循环。

示例:查找数组中第一个大于 10 的数字

public class BreakExample {
    public static void main(String[] args) {
        int[] numbers = {5, 8, 12, 3, 15, 9};
        int target = 10;
        System.out.println("开始查找第一个大于 " + target + " 的数字...");
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("正在检查数字: " + numbers[i]);
            // 如果当前数字大于目标值,就使用 break 退出循环
            if (numbers[i] > target) {
                System.out.println("找到了!数字是: " + numbers[i]);
                break; // 这行代码会立即终止 for 循环
            }
        }
        System.out.println("循环已结束。");
    }
}

输出结果:

开始查找第一个大于 10 的数字...
正在检查数字: 5
正在检查数字: 8
正在检查数字: 12
找到了!数字是: 12
循环已结束。

代码分析:

java break跳出for循环-图2
(图片来源网络,侵删)
  1. for 循环开始,i 从 0 开始。
  2. 检查 numbers[0] (值为 5),不大于 10,循环继续。
  3. 检查 numbers[1] (值为 8),不大于 10,循环继续。
  4. 检查 numbers[2] (值为 12),大于 10if 条件成立,执行 break
  5. break 语句被执行,for 循环立即终止。
  6. 程序跳过 for 循环中剩余的所有迭代(检查 3, 15, 9),直接执行 System.out.println("循环已结束。");

break 在嵌套循环中的行为

break 出现在嵌套循环(一个循环在另一个循环内部)中时,它只会跳出离它最近的那一层循环

示例:break 只跳出内层循环

public class NestedBreakExample {
    public static void main(String[] args) {
        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,使用 break 退出内层循环。");
                    break; // 这个 break 只会退出内层 for 循环
                }
            }
            System.out.println("  继续执行外层循环的下一次迭代。");
        }
        System.out.println("所有循环结束。");
    }
}

输出结果:

外层循环 - i = 1
  内层循环 - j = 1
    j 等于 2,使用 break 退出内层循环。
  继续执行外层循环的下一次迭代。
外层循环 - i = 2
  内层循环 - j = 1
    j 等于 2,使用 break 退出内层循环。
  继续执行外层循环的下一次迭代。
外层循环 - i = 3
  内层循环 - j = 1
    j 等于 2,使用 break 退出内层循环。
  继续执行外层循环的下一次迭代。
所有循环结束。

代码分析:

java break跳出for循环-图3
(图片来源网络,侵删)
  • break 语句位于内层 for 循环中。
  • 每当内层循环的 j 变为 2 时,break 就会执行,只终止内层循环
  • 外层循环不受影响,会继续执行它的下一次迭代(i 继续增加)。

使用标签(Label)跳出多层循环

如果你想在嵌套循环中直接跳出外层循环,可以使用 break 加上循环标签

语法: labelName: for (...) { ... break labelName; ... }

示例:使用标签 outerLoop 跳出外层循环

public class LabeledBreakExample {
    public static void main(String[] args) {
        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,使用带标签的 break 退出外层循环。");
                    break outerLoop; // 指定要跳出的是名为 outerLoop 的循环
                }
            }
            // 这一行代码将不会被执行,因为外层循环已经被 break 跳出
            System.out.println("  这行代码不会显示。");
        }
        System.out.println("所有循环结束。");
    }
}

输出结果:

外层循环 - i = 1
  内层循环 - j = 1
    j 等于 2,使用带标签的 break 退出外层循环。
所有循环结束。

代码分析:

  • 我们给外层 for 循环起了一个名字 outerLoop
  • 在内层循环中,break outerLoop; 告诉 Java:“不要只跳出内层循环,而是直接跳出标签为 outerLoop 的那个循环”。
  • j 变为 2 时,整个 outerLoop 循环都被终止了,程序直接跳到了 System.out.println("所有循环结束。");

breakcontinue 的区别

这是一个非常重要的概念,初学者很容易混淆。

特性 break continue
作用 完全终止并退出整个循环。 跳过当前这次循环的剩余部分,直接进入下一次循环的判断。
循环次数 减少循环的总次数,提前结束循环。 不减少循环的总次数,只是跳过某一次。
执行位置 执行 break 后,循环体之后的代码会立即执行。 执行 continue 后,循环体中 continue 之后的代码不会执行,会直接跳转到循环条件判断处。

continue 示例:

public class ContinueExample {
    public static void main(String[] args) {
        System.out.println("跳过偶数,只打印奇数:");
        for (int i = 1; i <= 5; i++) {
            if (i % 2 == 0) {
                continue; // i 是偶数,就跳过本次循环的剩余部分(即下面的打印语句)
            }
            System.out.println("当前数字是: " + i);
        }
    }
}

输出结果:

跳过偶数,只打印奇数:
当前数字是: 1
当前数字是: 3
当前数字是: 5
  • break: 用于完全退出一个循环,在简单循环中,它用于在找到目标或满足条件时提前终止,在嵌套循环中,默认只跳出最内层。
  • 带标签的 break: 用于跳出指定的外层循环,提供了更强的控制能力。
  • continue: 用于跳过当前循环的剩余部分,继续下一次循环。
  • breakreturn 的区别: break 只能跳出循环或 switch 语句,而 return 会直接结束整个方法的执行,并返回一个值(如果方法有返回值)。
分享:
扫描分享到社交APP
上一篇
下一篇