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

4 Answers

0 votes
def find_value(matrix, target):
    """
    Search a 2D list for a target value.

    Returns:
        True if found, otherwise False.
    """

    for row in range(len(matrix)):
        for col in range(len(matrix[row])):

            print(f"Checking [{row}][{col}] = {matrix[row][col]}")

            if matrix[row][col] == target:
                print(f"\nFound {target} at [{row}][{col}]")

                # Exit the function immediately.
                # This exits all nested loops.
                return True

    return False


def main():
    # Create a 5x5 matrix containing 1..25
    matrix = []
    value = 1

    for row in range(5):
        current_row = []

        for col in range(5):
            current_row.append(value)
            value += 1

        matrix.append(current_row)

    target = 17

    if find_value(matrix, target):
        print("Search completed successfully.")
    else:
        print("Value not found.")


if __name__ == "__main__":
    main()


'''
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
def main():
    found = False

    for i in range(1, 11):
        for j in range(1, 11):

            print(f"Checking i={i}, j={j}")

            if i == 4 and j == 7:
                print(f"Condition found at i={i}, j={j}")

                found = True

                # Exit inner loop
                break

        # Exit outer loop
        if found:
            break

    print("Finished")


if __name__ == "__main__":
    main()


'''
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 at i=4, j=7
Finished

'''

 



answered 1 day ago by avibootz
0 votes
def main():

    for i in range(1, 11):

        for j in range(1, 11):

            print(f"Checking i={i}, j={j}")

            if i == 4 and j == 7:
                print(f"Condition found at i={i}, j={j}")
                break

        else:
            # Inner loop completed normally
            continue

        # Inner loop was broken
        break

    print("Finished")


if __name__ == "__main__":
    main()


'''
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 at i=4, j=7
Finished

'''

 



answered 1 day ago by avibootz
0 votes
class LoopExit(Exception):
    pass


def main():
    try:
        for i in range(1, 11):
            for j in range(1, 11):

                print(f"Checking i={i}, j={j}")

                if i == 4 and j == 7:
                    print(f"Condition found at i={i}, j={j}")

                    raise LoopExit

    except LoopExit:
        pass

    print("Finished")


if __name__ == "__main__":
    main()


'''
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 at i=4, j=7
Finished

'''

 



answered 1 day ago by avibootz
...