Ciclos infinitos en C#

Los ciclos son funciones muy útiles en varias tareas, pero hay que saber utilizarlas, en algún momento pude que generes ciclos infinitos en C#.

Los ciclos infinitos pueden causar varios problemas a tu aplicación, como son:

  • Procesos de carga interminables.
  • Errores de compilación.
  • Consumo excesivo de memoria del equipo.
  • Apagado del equipo en casos extremos.

Veamos cómo se pueden hacer los ciclos infinitos para evitar cometerlos y por supuesto no tener los problemas mencionados.

Ciclo infinito con FOR

El ciclo for es una función que realiza un proceso repetitivamente hasta que se cumpla una condición.

Sin embargo, si la condición nunca se cumple se puede generar un ciclo infinito, veamos el ejemplo siguiente:

for (int i = 0; i < 1; i++)
{
    i = i - 1;
    Console.WriteLine("el valor de i= "+ i);
}

Podemos observar que i nunca llega a ser mayor que uno, en consecuencia, el ciclo nunca puede terminar.

Ciclo infinito con WHILE

Con este ciclo sucede algo similar que con el ciclo for, este ciclo ejecuta el mismo proceso hasta que se cumpla la condición que lo detenga.

En el ejemplo siguiente se genera un ciclo infinito:

int n = 0;
while (n<1)
{
    Console.WriteLine("1 si es menor a 2");
}

La variable n tiene el valor de 0, sin embargo, dentro del ciclo en ningún momento se le cambia el valor para que supere 1.

Podría interesarte Generar contraseñas aleatorias en C#  

Observaciones

Haz las pruebas de los ejemplos anteriores en una aplicación de consola y observa el número de veces que se escribe el resultado en consola.

Ciclos infinitos en C#

En tan solo unos segundos se generan cientos de líneas en consola, continuara hasta que se consuma la memoria del equipo.

Con los ciclos anteriores pudimos observar cómo se generan los ciclos infinitos, también es posible generarlos con los ciclos:

  • Do while
  • Foreach

Sin importar el ciclo es importante definir bien en qué momento detenerse para evitar algún problema de rendimiento.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *