Respuesta a la pregunta de examen ¿es un bucle infinito?

Hace unos días publiqué una pregunta sobre bucles infinitos en C. Hoy os pongo la respuesta.

El programa era:

Aparentemente sí tenemos un bucle infinito, puesto que i empieza cumpliendo la condición i>=0 y así seguirá aunque i incremente su valor.

PEEEEERO, debemos tener en cuenta que en un int no podemos almacenar un número infinito. Por ejemplo en un compilador de 32 bits el mayor número que se puede almacenar en un int es 2.147.483.647. ¿Y qué sucede cuando llegamos al 2.147.483.648? Pues que el compilador continúa en el siguiente número válido que es el -2.147.483.647. Este número, claro, ya no cumple con la condición del for. Por lo tanto el programa finalizará en ese punto.

Así que no, no tenemos un bucle infinito. Es un bucle largo pero no infinito.

Si quieres comprobarlo sin tener que esperar un rato puedes probarlo usando un char:

Otra opción sería:

Curso de programación en C para principiantes

Ejercicios de C resueltos y comentados

1 thought on “Respuesta a la pregunta de examen ¿es un bucle infinito?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.