Estructuras De Contral
Enviado por FaBaGe • 19 de Octubre de 2011 • 3.380 Palabras (14 Páginas) • 456 Visitas
Estructuras de control
Las estructuras de control nos permiten alterar el flujo de ejecución de las sentencias que componen el cuerpo de una función. Sin ellas, sólo podríamos ejecutar las líneas de un programa una a una en orden lineal, lo que no nos permitiría computar cosas demasiado interesantes!
EL BUCLE while
El lenguaje de programación C contiene varias instrucciones condicionales y de bucle, en este capítulo las trataremos todas ellas empezando con el bucle while. El bucle while se ejecuta mientras una condición es cierta. Cuando esta condición se torna falsa, el bucle termina su operación. Veamos el siguiente ejemplo:
/* Este es un ejemplo del bucle while. */
# include <stdio.h>
int main()
{
int contador;
contador = 0;
while (contador < 6)
{
printf ("El valor de contador es %d\n", contador);
contador = contador + 1;
}
return 0 ;
}
/ * Resultado de la ejecución del programa
El valor de contador es 0
El valor de contador es 1
El valor de contador es 2
El valor de contador es 3
El valor de contador es 4
El valor de contador es 5
* /
En este programa empezamos con un comentario y el punto de entrada main ( ), después definimos una variable de tipo entero a la que llamamos contador dentro del cuerpo del programa, esta variable es inicializada a cero para después entrar en el bucle while. La sintaxis del bucle while es justamente como se muestra en el programa. A la palabra clave while le sigue una expresión de algo entre paréntesis y luego una serie de enunciados encerrados entre llaves. Tan pronto como la expresión entre paréntesis es verdadera todos los enunciados entre las llaves se ejecutarán repetidamente. En este caso, debido a que la variable contador es incrementada en 1 cada que los enunciados entre llaves son ejecutados, eventualmente se alcanzará el valor de 6. En este punto los enunciados no se ejecutarán mas porque contador ya no es menor que 6 finalizando así el bucle. El programa continuará entonces con los enunciados que siguen a las llaves. La expresión de comparación entre paréntesis de la instrucción while la trataremos en el siguiente capítulo, antes debemos hacer algunas observaciones respecto al bucle. Primero, si la variable contador fuera inicializada a un valor mayor de 5, los enunciados dentro de las llaves podrían no ejecutarse por lo que es posible tener un bucle que jamás se ejecute. Segundo, si la variable no se incrementa dentro del bucle este jamás terminaría y por ende el programa. Finalmente, en el caso de existir un solo enunciado por ejecutar entonces no es necesario el uso de llaves. A partir de este programa veremos el resultado de la ejecución del mismo en forma de comentarios y en algunas veces mostraremos imágenes del programa ejecutado al final del código. También continuaremos ignorando el significado de los enunciados #include y return ya que se explicarán posteriormente.
EL BUCLE do-while
Tenemos ahora una variación del bucle while en nuestro siguiente ejemplo, este programa es casi idéntico al ejemplo anterior excepto que el bucle inicia con la palabra clave do, seguida por una serie de enunciados compuestos entre llaves, después viene la palabra clave while y finalmente la expresión de evaluación entre paréntesis.
/* Este es un ejemplo del bucle do-while */
# include <stdio.h>
int main()
{
int i;
i = 0;
do
{
printf ( "El valor de i es ahora %d\n", i );
i = i + 1;
}
while (i < 5);
return 0;
}
Los enunciados entre llaves se ejecutan repetidamente en tanto que la expresión entre paréntesis sea verdadera. Cuando la expresión es falsa, la ejecución del bucle termina y el control del programa pasa a los enunciados siguientes. Respecto al bucle do-while debemos apuntar lo siguiente. En primer lugar, debido a que la prueba verdadero-falso se hace al final del bucle, los enunciados dentro de las llaves se ejecutan al menos una vez. En segundo, si la variable i no cambia dentro del bucle entonces el programa jamás terminaría. Observe además que los bucles pueden anidarse, esto es, un bucle puede contener dentro de sus enunciados otro bucle. El nivel de anidamiento no tiene límite y esto lo ilustraremos mas adelante.
EL BUCLE for
/* Este es un ejemplo del bucle for */
#include <stdio.h>
int main()
{
int indice;
for(indice = 0 ; indice < 6 ; indice = indice + 1)
printf ( "El valor de indice es %d\n", indice);
return 0;
}
/* Resultado de la ejecución:
El valor de indice es 0
El valor de indice es 1
El valor de indice es 2
El valor de indice es 3
El valor de indice es 4
El valor de indice es 5
*/
El bucle for consiste de la palabra clave for seguida de una expresión entre paréntesis. Esta expresión se compone realmente de tres campos cada uno separado por un punto y coma. El primer campo contiene la expresión "indice = 0" y se le llama campo de inicialización. Cualquier expresión en este campo se ejecuta antes del inicio del bucle, en términos generales se puede decir que no existe límite en el contenido del primer campo ya que es posible contener varios enunciados separados por comas sin embargo es buena práctica de programación mantener las cosas simples. El segundo campo, que en este caso contiene "indice < 6 " es la prueba que se hace al principio de cada ciclo del bucle y puede ser cualquier expresión que pueda evaluarse a verdadero ó falso. La expresión del tercer campo se ejecuta en cada ciclo del bucle pero solo hasta que se hayan ejecutado todas las instrucciones contenidas dentro del cuerpo principal del bucle, en este campo, como en el primero es posible contener varias expresiones separadas por comas.
En seguida de la expresión for ( ) están uno o varios enunciados que conforman el cuerpo ejecutable del bucle. Un enunciado compuesto es cualquier grupo de instrucciones válidas en C encerradas entre llaves.
Un bucle while es útil cuando se desconoce cuantas veces será ejecutado un bucle, en tanto que la instrucción for se usa generalmente en aquellos casos en donde debe existir un número fijo de interacciones, además, el bucle for es conveniente porque contiene toda la
...