Programacion con bucles en C

Introducción
Hasta ahora los programas que hemos visto eran lineales. Comenzaban por la primera
instrucción y acababan por la última, ejecutándose todas una sola vez. . Lógico ¿no?.
Pero resulta que muchas veces no es esto lo que queremos que ocurra. Lo que nos suele
interesar es que dependiendo de los valores de los datos se ejecuten unas instrucciones y
no otras. O también puede que queramos repetir unas instrucciones un número
determinado de veces. Para esto están las sentencia de control de flujo.
Bucles
Los bucles nos ofrecen la solución cuando queremos repetir una tarea un número
determinado de veces. Supongamos que queremos escribir 100 veces la palabra hola.
Con lo que sabemos hasta ahora haríamos:
#include <stdio.h>
void main()
{
printf( "Hola\n";
printf( "Hola\n";
printf( "Hola\n";
printf( "Hola\n";
printf( "Hola\n";
... (y así hasta 100 veces)
}
¡Menuda locura! Y si queremos repetirlo más veces nos quedaría un programa de lo más
largo.
Sin embargo usando un bucle for el programa quedaría:
#include <stdio.h>
void main()
{
int i;
for ( i=0 ; i<100 ; i++ )
{
printf( "Hola\n" );
}
}
Con lo que tenemos un programa más corto
El bucle For
El formato del bucle for es el siguiente:
for( dar valores iniciales ; condiciones ; incrementos )
{
conjunto de intrucciones a ejecutar en el bucle
}
Vamos a verlo con el ejemplo anterior:
...
for ( i=0 ; i<100 ; i++ )
...
En este caso asignamos un valor inicial a la variable
i
. Ese valor es
cero
. Esa es la parte de dar valores iniciales. Luego tenemos
i<100
. Esa es la parte condiciones. En ella ponemos la condición es que i sea menor que 100,
de modo que el bucle se ejecutará mientras i sea menor que 100. Es decir, mientras se
cumpla la condición. Luego tenemos la parte de incrementos, donde indicamos cuánto
se incrementa la variable.
Como vemos, el for va delante del grupo de instrucciones a ejecutar, de manera que si la
condición es falsa, esas instrucciones no se ejecutan ni una sola vez.
Cuidado: No se debe poner un ";" justo después de la sentencia for, pues entonces sería
un bucle vacío y las instrucciones siguientes sólo se ejecutarían una vez. Veamoslo con
un ejemplo:
#include <stdio.h>
void main()
{
int i;
for ( i=0 ; i<100 ; i++ ); /* Cuidado con
este punto y coma */
{
printf( "Hola\n" );
}
}
Este programa sólo escribirá en pantalla
Hola
una sola vez.
Tambíen puede suceder que quieras ejecutar un cierto número de veces una sóla
instrucción (como sucede en nuestro ejemplo). Entonces no necesitas las llaves "{}":
#include <stdio.h>
void main()
{
int i;
for ( i=0 ; i<100 ; i++ ) printf( "Hola\n" );
}
o también:
for ( i=0 ; i<100 ; i++ )
printf( "Hola\n" );
Sin embargo, yo me he encontrado muchas veces que es mejor poner las llaves aunque
sólo haya una instrucción; a veces al añadir una segunda instrucción más tarde se te
olvidan las comillas y no te das cuenta. Parece una tontería, pero muchas veces, cuando
programas, son estos los pequeños fallos los que te vuelven loco.
En otros lenguajes, como Basic, la sentencia for es muy rígida. En cambio en C es muy
flexible. Se puede omitir cualquiera de las secciones (inicialización, condiciones o
incrementos). También se pueden poner más de una variable a inicializar, más de una
condición y más de un incremento. Por ejemplo, el siguiente programa sería
perfectamente correcto:
#include <stdio.h>
void main()
{
int i, j;
for( i=0, j=5 ; i<10 ; i++, j=j+5 )
{
printf( "Hola " );
printf( "Esta es la línea %i", i );
printf( "j vale = %i", j );
}
}
Como vemos en el ejemplo tenemos más de una variable en la sección de inicialización
y en la de incrementos. También podíamos haber puesto más de una condición. Los
elementos de cada sección se separan por comas. Cada sección se separa por punto y
coma.


While
El formato del bucle while es es siguiente:
while ( condición )
{
bloque de instrucciones a ejecutar
}
While quiere decir mientras. Aquí se ejecuta el bloque de intrucciones mientras se
cumpla la condición impuesta en while. Vamos a ver un ejemplo:
#include <stdio.h>
void main()
{
int contador = 0;
while ( contador<100 )
{
contador++;
printf( "Ya voy por el %i, pararé
enseguida.\n", contador );
}
}

Este programa imprime en pantalla los valores del 1 al 100. Cuando i=100 ya no se
cumple la condición. Una cosa importante, si hubíesemos cambiado el orden de las
instrucciones a ejecutar:
...
printf( "Ya voy por el %i, pararé enseguida.\n", contador );
contador++;
...
En esta ocasión se imprimen los valores del 0 al 99. Cuidado con esto, que a veces
produce errores difíciles de encontrar.
Do While
El formato del bucle do-while es:
do
{
instrucciones a ejecutar
} while ( condición );
La diferencia entre
while
y
do-while
es que en este último, la condición va despues del conjunto de instrucciones a ejecutar.
De esta forma, esas instrucciones se ejecutan al menos una vez.
Su uso es similar al de while.

Fuentes de Información - Programacion con bucles en C

Dar puntos
14 Puntos
Votos: 0 - T!score: 0/10
  • 0 Seguidores
  • 13.810 Visitas
  • 6 Favoritos
Sentencia Switch

Ciencia y Educación

Sentencia Switch

Tutorial PHP - Parte 8

Linux y GNU

Tutorial PHP - Parte 8

Tutorial PHP - Parte 6

Linux y GNU

Tutorial PHP - Parte 6

[VideoTutoriales] Unity3D

Hazlo tu mismo

[VideoTutoriales] Unity3D

2 comentarios - Programacion con bucles en C

@beat432 Hace más de 3 años
gran post !! me sirvio!
@matypappo Hace más de 3 años
buena info, es lo q estoy estudiando