Respuesta a la pregunta #2. ¿Cómo hacer un bucle infinito?

Hoy vamos a ver la respuesta a la pregunta ¿Cómo hacer un bucle infinito?.

Teníamos el código:

#include <stdio.h>
 
int main() {
	char i;
	for (i=0; i>=0; i++) {
		printf("Soy un bucle infinito (ciclo %d)\n", i);
	}
 
	return 0;
}

y se trataba de convertirlo en un bucle infinito sin modificar el for y usando números enteros. Una posible solución es:

#include <stdio.h>
 
int main() {
	unsigned char i;
	for (i=0; i>=0; i++) {
		printf("Soy un bucle infinito (ciclo: %d)\n", i);
	}
 
	return 0;
}

El problema era que el bucle no era infinito porque cuando la variable i llega a 127 y le sumamos 1 se convierte en -128. Como este es un número negativo la condición del for ya no se cumple.

Al usar un unsgined, cuando la variable i llega a 255 si la incrementamos pasa al siguiente número válido que es el 0. De esta forma ya tenemos uno de los incómodos bucles infinitos.

Pregunta de examen en C: ¿Cómo hacer un bucle infinito?

Siguiendo con la pregunta de examen de hace unos días “¿Es un bucle infinito?” hoy toca una nueva pregunta:

¿Cómo modificarías este código para que sí fuera un bucle infinito?

NOTA: No se puede cambiar nada en la línea del for y se deben usar números enteros.

#include <stdio.h>
 
int main() {
	char i;
	for (i=0; i>=0; i++) {
		printf("Soy un bucle infinito (ciclo %d)\n", i);
	}
 
	return 0;
}