¡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:
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:
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á.