Bucle infinito
Parte de la sección Fundamentos del Journey de C# de Coddy — lección 47 de 69.
Un bucle infinito es un bucle que nunca se detiene porque su condición siempre se evalúa como true. Estos bucles pueden ocurrir con cualquier tipo de bucle (for, while, do-while), pero se asocian más comúnmente con los bucles while y do-while porque sus condiciones se establecen explícitamente.
Aquí tienes un ejemplo de un bucle while infinito:
while (true) {
Console.WriteLine("This will print forever!");
}En este caso, la condición es simplemente true, que siempre se evalúa como true. Por lo tanto, el bucle se ejecutará indefinidamente, imprimiendo el mensaje una y otra vez.
Otra forma de crear un bucle infinito es omitiendo la condición en un bucle for:
for (;;) {
Console.WriteLine("This also prints forever!");
}Aquí, las partes de inicialización, condición y actualización del bucle for se omiten por completo. Esto crea un bucle que se ejecuta indefinidamente.
Los bucles infinitos también pueden ocurrir de forma no intencionada, como cuando la condición del bucle es siempre true debido a un error de lógica:
int i = 0;
while (i < 10) {
Console.WriteLine("i is: " + i);
// Falta i++ para incrementar i
}En este ejemplo, la variable i nunca se incrementa, por lo que la condición i < 10 siempre es true. Esto crea un bucle infinito que seguirá imprimiendo "i is: 0" indefinidamente.
Los bucles infinitos pueden ser útiles en algunos casos, como en programas de servidor que necesitan seguir ejecutándose hasta que se detengan manualmente. Sin embargo, también pueden hacer que los programas se congelen o dejen de funcionar si no se gestionan correctamente.
Hoja de referencia
Un bucle infinito es un bucle que nunca se detiene porque su condición siempre se evalúa como true.
Bucle while infinito intencional:
while (true) {
Console.WriteLine("This will print forever!");
}Bucle for infinito con partes omitidas:
for (;;) {
Console.WriteLine("This also prints forever!");
}Bucle infinito no intencional (falta el incremento):
int i = 0;
while (i < 10) {
Console.WriteLine("i is: " + i);
// Missing i++ to increment i
}Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloIncremento/DecrementoPost-incremento/decrementoAtajos aritméticos7Entrada y Salida Básica
Salida BásicaInterpolación de CadenasLectura de EntradaParseoResumen - Hasta 120Resumen - Verdadero o Falso5Operadores Parte 2
Operadores de comparaciónOperadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
VarConstantesConvenciones de NomenclaturaResumen - Inicializar VariablesConversión de Tipos6Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador ternarioResumen - If ElseIf - Else anidados