16. break statement

La sentencia break dentro de un bucle for salta fuera del bucle para continuar con la siguiente instrucción después del bucle.

Esta sentencia 'rompe' la ejecución del bucle for y la termina de forma inmediata.

En el siguiente ejemplo un contador desde el número 1 hasta el número 9 se rompe en el número 5:

for num in range(1, 10):
    print(num)
    if num == 5:
        break
print('Final')

La salida por pantalla del anterior código será la siguiente:

1
2
3
4
5
Final

En este otro ejemplo, un programa busca el primer número que sea múltiplo de 5 y de 7 entre los primeros 100 números. El programa deja de buscar cuando encuentra el primer número que cumpla la condición:

for num in range(1, 100):
    if (num % 5 == 0) and (num % 7 == 0):
        print(num)
        break

You can also use the else statement in for loops. The block of code inside the else statement will be executed whenever the for loop terminates normally and will not be executed if the for loop terminates due to a break statement

Example:

for num in range(1, 100):
    if (num % 5 == 0) and (num % 7 == 0):
        print(num, 'es divisible por 5 y por 7')
        break
else:
    print('Ningún número es divisible por 5 y por 7')

Exercises

  1. Write a program that prints a countdown from 10 to 1 on the screen. The program should stop at the number 5.

    Clue:

    for num in range(10, 0, -1):
       ...
       ...
       ...
    
  2. Write a program that asks for a password a maximum of 4 times. If the password is correct, you must write 'Authorized access' and finish. If the password is not correct all 4 times, you must write 'Unauthorized access'.

    The password and access validity must be written to a variable that will be checked at the end of the loop.

    Clue:

    password = '1234'
    
    for intento in range(4):
        entrada = input('Introduce la contraseña: ')
        ...
        ...
    else:
        print('Acceso no permitido')
    
  3. Modify the following program so that it writes a sentence on the screen until it reaches letter number 30, where it must stop typing thanks to a break statement.

    It uses a letter counter to know when the loop should end.

    Clue:

    frase = 'En un lugar de la Mancha, de cuyo nombre no quiero acordarme'
    contador = 0
    for letra in frase:
        print(letra, end='')
        ...
        ...
        ...
    
  4. Write a program that adds all the integers from 1 to 100 and that stops when the sum is greater than 1000. The program must indicate up to which number it has added and what the result of the addition is.

    Clue:

    suma = 0
    maximo = 1000
    
    for num in range(1, 101):
        suma = suma + num
        ...
        ...
        ...
    
  5. Escribe un programa que busque si un número tiene divisores entre el 2 y el propio número menos uno. En caso de tener algún divisor, escribe en la pantalla que no es un número primo. En caso contrario escribe que es un número primo.

    Clue:

    num = int( input('Escribe un número: ') )
    
    for divisor in range(2, num):
        if num % divisor == 0:
            ...
            ...
    else:
        print(...)