How to break out of multiple for loops at once in Java

2 Answers

0 votes
public class BreakMultipleLoops {

    /**
     * Searches a 2D array for a target value.
     * Returns true as soon as the value is found.
     */
    public static boolean findValue(int[][] matrix, int target) {

        for (int row = 0; row < matrix.length; row++) {

            for (int col = 0; col < matrix[row].length; col++) {

                System.out.printf(
                    "Checking [%d][%d] = %d%n",
                    row, col, matrix[row][col]
                );

                // Found the target value
                if (matrix[row][col] == target) {
                    System.out.printf(
                        "%nFound %d at [%d][%d]%n",
                        target, row, col
                    );

                    // Exits the method immediately,
                    // which also exits all loops.
                    return true;
                }
            }
        }

        return false;
    }

    public static void main(String[] args) {

        // Create a 5x5 matrix
        int[][] matrix = new int[5][5];

        int value = 1;

        // Fill the matrix with values 1..25
        for (int row = 0; row < matrix.length; row++) {
            for (int col = 0; col < matrix[row].length; col++) {
                matrix[row][col] = value++;
            }
        }

        int target = 17;

        if (findValue(matrix, target)) {
            System.out.println("Search completed successfully.");
        } else {
            System.out.println("Value not found.");
        }
    }
}


/*
run:

Checking [0][0] = 1
Checking [0][1] = 2
Checking [0][2] = 3
Checking [0][3] = 4
Checking [0][4] = 5
Checking [1][0] = 6
Checking [1][1] = 7
Checking [1][2] = 8
Checking [1][3] = 9
Checking [1][4] = 10
Checking [2][0] = 11
Checking [2][1] = 12
Checking [2][2] = 13
Checking [2][3] = 14
Checking [2][4] = 15
Checking [3][0] = 16
Checking [3][1] = 17

Found 17 at [3][1]
Search completed successfully.

*/

 



answered 1 day ago by avibootz
0 votes
public class LabeledBreakExample {

    public static void main(String[] args) {

        outerLoop:
        for (int i = 1; i <= 10; i++) {

            for (int j = 1; j <= 10; j++) {

                System.out.printf(
                    "Checking i=%d, j=%d%n",
                    i, j
                );

                if (i == 4 && j == 7) {
                    System.out.println("Condition found.");
                    break outerLoop; // exits both loops
                }
            }
        }

        System.out.println("Finished");
    }
}


/*
run:

Checking i=1, j=1
Checking i=1, j=2
Checking i=1, j=3
Checking i=1, j=4
Checking i=1, j=5
Checking i=1, j=6
Checking i=1, j=7
Checking i=1, j=8
Checking i=1, j=9
Checking i=1, j=10
Checking i=2, j=1
Checking i=2, j=2
Checking i=2, j=3
Checking i=2, j=4
Checking i=2, j=5
Checking i=2, j=6
Checking i=2, j=7
Checking i=2, j=8
Checking i=2, j=9
Checking i=2, j=10
Checking i=3, j=1
Checking i=3, j=2
Checking i=3, j=3
Checking i=3, j=4
Checking i=3, j=5
Checking i=3, j=6
Checking i=3, j=7
Checking i=3, j=8
Checking i=3, j=9
Checking i=3, j=10
Checking i=4, j=1
Checking i=4, j=2
Checking i=4, j=3
Checking i=4, j=4
Checking i=4, j=5
Checking i=4, j=6
Checking i=4, j=7
Condition found.
Finished

*/

 



answered 1 day ago by avibootz
...