¿Qué son los bucles infinitos?
Un bucle infinito, es aquel que no tiene fin. Es el que se sigue ejecutando de forma ilimitada hasta que cerramos el programa o la consola.
Bucle infinito en inglés se dice infinite loop.
Espacio publicitario
A veces, esto será a propósito y otras por error. Hacerlo por error, puede tener consecuencias:
- Los programas pueden consumir grandes cantidades de recursos, como memoria y CPU, lo que provoca ralentizaciones y bloqueos del sistema.
- Si alguien malintencionado se percata de este fallo en el programa puede que lo aproveche para algún mal propósito.
- El programa se congelará o irá muy lento.
- El programa puede generar datos no válidos.
¿Cómo se producen los bucles infinitos?
Los bucles infinitos son fáciles de producir. Mira un ejemplo en la siguiente página:
Algoritmo bucle_repetir
// Se declara y solicita el valor del iterador
Definir i Como Entero
Escribir "Introduzca un número del 0 al 5."
Leer i
// Bucle Repetir
Repetir
Escribir "El valor del bucle es: ", i
//i <- i + 1 A este bucle le falta el paso (incremento o decremento)
Hasta Que i > 5
FinAlgoritmo
He anulado la parte que incrementa el iterador con un comentario. Es como si me lo hubiera olvidado de poner. En ese caso, el bucle nunca finaliza. Si le pongo un 4 en la consola, esto es lo que sale:
El bucle se ejecuta muchas veces, haciendo que el consumo de CPU suba por encima de lo normal. Si esto manejase muchos datos, también se consumiría mucha memoria RAM y velocidad de procesador. Mira lo simple que es el ejemplo, y un procesador de 16 núcleos a 2.3 GHz, lo tengo trabajando como ves en la imagen, solo por ese bucle infinito que tan solo escribe una frase repetidamente en la consola.
Bucles infinitos a propósito
Habrá muchas ocasiones en las que tendrás que crear bucles infinitos a propósito. Por ejemplo, para mantener abierta la ventana de un programa con interfaz gráfica. Lo importante, es que esta ejecución esté controlada y haya alguna forma de salir del bucle cuando el usuario quiera. Por ejemplo, un botón para salir.
Una interfaz gráfica es la forma en que se llaman los programas que tienen botones, menús y diferentes elementos interactivos. Por ejemplo, PSeInt es un programa que tiene interfaz gráfica. En cambio, nuestros programas hasta el momento, son solo de consola, no tienen elementos gráficos, son solo texto. A los programas de interfaz gráfica se les denomina también como GUI.
GUI son las siglas de Graphical User Interface.
Espacio publicitario
Espacio publicitario
Ejercicios de programación para resolver
Analiza el código y responde un par de preguntas sin ejecutarlo. Si tienes dudas, consulta la solución o ejecuta el código.
Algoritmo bucle_repetir
// Se declara y solicita el valor del iterador
Definir i Como Entero
Escribir "Introduzca un número: "
Leer i
// Bucle Repetir
Repetir
Escribir "El valor del bucle es: ", i
//i <- i + 1
Hasta Que i < 3
FinAlgoritmo
38. Si en el Leer
, en la consola, le
introduzco el valor 2, ¿tengo un bucle infinito?
39. Si en el Leer
, en la consola, le
introduzco el valor 7, ¿tengo un bucle infinito?
38. Con el valor 2 no genera un bucle infinito.
39. Con el valor 7, sí genera un bucle infinito.
Espacio publicitario