4.3) Estructura for.
El formato general de la sentencia if es el siguiente.
![]() |
![]() |
El funcionamiento de la estructura for
es el siguiente:
![]() |
1) Se evalúa la expresión de inicialización. |
![]() |
2) Se evalúa la condición. Si el resultado es falso, termina la ejecución de la estructura for. Si es verdadero, sigue por el paso 3. |
![]() |
3) Se ejecuta el bloque de instrucciones dentro de la estructura. |
![]() |
4) Se evalúa la expresión final, que normalmente altera la variable de control, y se vuelve al paso segundo. |
Variando las tres expresiones de la estructura
for, se pueden
realizar diferentes tipos de bucles.
Ejemplo: A
continuación se presenta un ejemplo con traza del bucle for.
Por medio del cual realizmos la suma de los 8 primeros números enteros.
Dando el resultado por pantalla.
No es necesario que nos aparezcan las tres expresiones en la sentencia for, aunque deben aparecer los puntos y comas. Sin embargo, se deben entender perfectamente las consecuencias de esta omisión. Las expresiones primera y tercerase pueden omitir si se inicializa y/o altera el índice de alguna otra forma. Si omitimos la segunda expresión se dará por supuesto que ésta, al ser evaluada dará siempre 1 (cierto); por tanto, tendremos un caso de bucle infinito, a menos que introduzcamos una sentencia que rompa el ciclo (Ej: break o return). En cualquier caso en la gran mayoría de las ocasiones incluiremos las tres expresiones en el for. |
Para acabar con el for sería conveniente hacer una mención sobre la existencia de un operador coma (,), que se utiliza principalmente en esta sentencia. Este operador me permite que aparezcan dos expresiones en situaciones en donde sólo se utilizaría una expresión ordinariamente. Por tanto, sería posible encontrarse algo como:
for (expresion 1a, expresion 1b; expresion 2; expresion 3) sentencia |
for (expresion 1a; expresion 2; expresion 3a, expresion 3b) sentencia |
Ejemplo 1:
NOTA: Este
ejemplo visualizaría lo siguiente:
En este punto nos pediría un número por teclado, que nos va a servir para darle valor a la variable entera n (%i: entero decimal, octal, o hexadecimal). Supongamos que introducimos el 3; seguidamente el bucle inicializa la i y suma al valor de 0 (i=suma=0;). Como el valor de i (que es 0), es menor o igual que el valor de n (que es 3), ejecuto el cuerpo del bucle, que asignará en la primera vuelta a la variable suma el valor de 0 (0+0), tras realizar el cuerpo del bucle, incrementaré el valor de i en 1, volviendo a comprobar la condición: i<=n; así hasta dar cuatro pasadas en el bucle, el valor de suma finalmente será: |
Ejemplo 2:
main() /*visualiza los números
del 0 al 9.*/
{
Como vemos tenemos dentro del for tres expresiones encerradas entre paréntesis. La primera expresión asigna un valor de 0 a la variable entera digito, la segunda expresión establece que el bucle se repetirá hasta que el valor actual de digito no sea mayor que 9, y la tercera expresión incrementa en 1 el valor de digito en cada pasada del bucle. |
Ejemplo 1:
main() /*visualiza los números
del 0 al 9.*/
{
Visualizará: 0
1 2 3 4 5 6 7 8 9
Ejemplo 1:
![]() |
En la primera entrada se inicializa cont y contr a 0 y a 6 respectivamente. |
![]() |
Se evalúa la condición: cont <= 40, si es cierta seguimos, sino, salimos. |
![]() |
Se ejecuta el cuerpo del bucle for. |
![]() |
Se evalúa la expresión final,
incrementando, y decrementando, cont y
contr
respectivamente, y volvemos al paso 2. |