如何打破 Java 中的嵌套循环


使用 break (将中断内循环)

了解嵌套循环如何工作以确保应用 break 将输出所需的结果非常重要。

如果您是嵌套循环的新手,我将尽可能让您理解这个概念。

当您在内循环中应用 break 时,它会在满足特定条件时中断循环,但外循环会继续执行。

下面的嵌套循环输出两个循环相乘的结果,直到外循环到达位置3

循环将跳过位置 3 并继续执行其余位置。

public static void main(String[] args){
        //using break
        for (int i=1; i<=5; i++){
            for (int j=1; j<=5; j++){
                if (i == 3) break;{
                    System.out.println(i +" * " +j+" = "+(i*j));
                }
            }
        }
}

输出:

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16

Using named loop

在我们讨论的第一个例子中,嵌套循环在中断位置后继续执行外循环3

为了防止外循环继续执行,我们可以使用一个命名循环,它只是一个loop with a label.

当条件满足时,我们希望将命名循环添加到break 语句中,)以确保它中断外层循环,而不是仅仅中断嵌套循环。

对于这种方法,嵌套循环将打印出两个循环的乘积,直到外循环到达位置3

该break语句将打破外环防止它进一步迭代。

//using named loop
public static void main(String[] args){
     firstLoop: for (int i=1; i<=4; i++){
            for (int j = 1; j <= 4; j++) {
                if (i == 3) break firstLoop;{
                    System.out.println(i + " * " + j + " = " + (i * j));
                }
            }
        }
}

输出:

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8

Using named block

块是包含在大括号内的局部类和变量的语句序列,可用于打破嵌套循环。

该块逐个执行语句,直到最后一行代码。如果代码执行成功,则块成功终止,如果代码异常终止,同样的情况也适用。

为了使用这种方法打破嵌套循环,我们将打印出嵌套循环的乘积,直到满足条件。

一旦满足条件,我们将中断块的执行,这实际上将中断嵌套循环的执行。

当乘积等于 时,块将中断嵌套循环4,您还可以在块的右大括号之前添加一些条件无效时要执行的语句。

public static void main(String[] args){
     block: {
            for (int i = 1; i < 5; i++) {
                for (int j = 1; j < 5; j++) {
                    if ((i * j) == 4) break block;{
                        System.out.println(i+" * "+j+" = "+(i*j));
                    }
                }

            }
            System.out.println("The nested loop failed");
        }
}

输出:

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3

使用return

return关键字的工作方式与 break 关键字相同,在满足条件后终止嵌套循环,但返回一个值以供循环中断。

要使用 return 方法打破嵌套循环,请创建一个方法并初始化一个值,一旦满足条件,该方法将返回该值。

下面的示例初始化名为multiplywith的变量1并跟踪嵌套循环的乘法,直到乘法的结果为8

当乘积为 8 时,该方法将返回值,嵌套循环将立即中断。

for 循环还将打印出嵌套循环的乘积,直到满足条件。

//using return
 public static int usingReturn(){
        int multiply = 1;
        for (int i=1; i<=5; i++){
            for (int j=1; j<=5; j++){
                multiply = (i*j);
                if (multiply == 8)return multiply;{
                    System.out.println(i +" * "+j+" = "+multiply);
                }

            }
        }
        return multiply;
    }
public static void main(String[] args){
    System.out.println(usingReturn());
}

输出:

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
8

结论

在本教程中,您学习了四种可用于跳出 Java 嵌套循环的方法。你所涵盖的方法包括使用breakreturnnamed loop,和named block


原文链接:https://codingdict.com/