Saltar a contenido

¡Evita los ciclos infinitos!

Es importante tener en cuenta que si la condición de un bucle while nunca se vuelve falsa, el bucle se ejecutará infinitamente. Esto se conoce como un ciclo infinito.

Por ejemplo, si olvidamos decrementar el valor de dedos en el bucle anterior, el bucle se ejecutará infinitamente:

Python
1
2
3
4
dedos = 5

while dedos != 0:
    print("Hola")

El programa imprimirá "Hola" una y otra vez, sin detenerse. Esto se debe a que la condición dedos != 0 siempre será verdadera, ya que nunca se modifica el valor de dedos. Así el flujo del programa llegará a la línea 2, la condición será verdadera, se imprimirá "Hola" en la línea 3, volverá a la línea 2, nuevamente la condición será verdadera y así sucesivamente, en un ciclo infinito accidental (accidental infinite loop).

¡Cuidado!

¡Evita los ciclos infinitos! Siempre asegúrate de que la condición de un bucle while se vuelva falsa en algún momento. De lo contrario, el bucle se ejecutará infinitamente y tu programa se quedará colgado.

Para ello, dentro del bloque de instrucciones del bucle, asegúrate de modificar la variable de la condición de alguna manera para que en algún momento la condición se vuelva falsa.

Frenar un ciclo infinito

Para detener un ciclo infinito

Si alguna vez, por error o desconocimiento, o simplemente por el hecho de hacerlo, ejecutas un ciclo infinito **podrás cancelarlo presionando las teclas CONTROL + C. Esta secuencia de teclas fuerza la finalización del programa.

Sin embargo, como programadores responsables, debemos evitar a toda costa los ciclos infinitos. Siempre debemos asegurarnos de que la condición de un bucle while se vuelva falsa en algún momento. De lo contrario, nuestro programa se quedará colgado y no podremos hacer nada más que forzar su finalización.

Veamos como mejorar nuestro código anterior para evitar un ciclo infinito:

Python
dedos = 5

while dedos != 0:
    print("Hola")
    dedos = dedos - 1

En este caso, el valor almacenado en la variable dedos es el que permite validar nuestra condición. Mientras el valor en dedos sea distinto a 0, se ejecutará el bloque de instrucciones. En cada iteración, se imprimirá el saludo y se decrementará el valor de dedos en 1. Cuando dedos sea igual a 0, la condición será falsa y el bucle terminará.