Zona de programación, todo lo necesario para aprender a programar

 
 
 

 

 

Lenguaje c

 

5) Sentencias de control

 

 

IF - ELSE

Esta proposición sirve para ejecutar ciertas sentencias de programa , si una expresión resulta cierta ú otro grupo de sentencias, si aquella resulta falsa. La interpretacion seria:

SI es CIERTA haga tal cosa , si no lo es salteéla .

El caso más sencillo sería :

if(expresión)

 sentencia ;

 

 Cuando la sentencia que sigue al IF es única, las dos formas de escritura

expresadas arriba son equivalentes.

 

La sentencia sólo se ejecutará si el resultado de "expresión" es distinto

de cero (CIERTO) , en caso contrario el programa salteará dicha sentencia ,

realizando la siguiente en su flujo.

La proposición IF puede estar seguida por un bloque de sentencias :

if(expresión)                        if(expresión) {

 

{                                          sentencia 1 ;

 

sentencia 1 ;                              sentencia 2 ;

 

sentencia 2 ;                          }

       }

Las dos maneras son equivalentes. El indentado de las sentencias (sangría) es  sumamente recomendable ,sobre todo para permitir la lectura de proposiciones muy complejas ó anidadas , como se verá luego. El bloque se ejecutará en su conjunto si la expresion resulta CIERTA. El uso del ELSE es optativo , y su aplicación resulta en la ejecución de una , ó una serie de sentencias en el caso de que la expresión del IF resulta FALSA.

Su aplicación puede verse a continuacion :

   if(expresión)                 if(expresión)

 

   {                             {

 

   sentencia 1 ;                 sentencia 1 ;

 

   sentencia 2 ;                 sentencia 2 ;

 

   }                             }

 

   sentencia 3 ;                 else

 

   sentencia 4 ;                 {

 

   sentencia 5 ;                 sentencia 3 ;

 

                                 sentencia 4 ;

 

                                 }

 

                                 sentencia 5 ;

En el ejemplo de la izquierda no se usa el ELSE y por lo tanto las sentencias 3 , 4 y 5 se ejecutan siempre . En el segundo caso , las sentencias 1 y 2 se ejecutan solo si la expresión es CIERTA , en ese caso las 3 y 4 NO se ejecutarán para saltarse directamente a la 5 , en el caso de que la expresión resulte FALSA se realizarán las 3 y 4 en lugar de las dos primeras y finalmente la 5 .

La proposición ELSE queda siempre asociada al IF más cercano , arriba de él .
Es común también , en caso de decisiones múltiples , el uso de anidamientos ELSE-IF de la forma indicada abajo:

if(exp.1)                        if(exp.1)

 

 sentencia1 ;                     sentencia1 ;

 

else  if(exp.2)                  else  if(exp.2)

 

 sentencia2 ;                          sentencia2 ;

 

else if(exp.3)                         else if(exp.3)

 

 sentencia3 ;                                sentencia3 ;

 

else                                   else

 

 sentencia5 ;                                sentencia5 ;

 

SWITCH

El SWITCH nos evita usar if- else anidados. Cuando las opciones son muchas, el texto comienza a hacerse difícil de entender y tedioso de escribir.
utilizando un SWITCH , queda mucho más claro de leer, y sencillo de escribir, como se aprecia en el ejemplo:

main()

{

 

int c  ;

 

printf("MENU :") ;

 

printf("       A = PONER EN LA LISTA ") ;

 

printf("       B = BORRAR DE LA LISTA   ") ;

 

printf("       O = ORDENAR LA LISTA     ") ;

 

printf("       I = IMPRIMIR LA LISTA    ") ;

 

printf("CUAL ES TU OPCION?  ") ;

 

c = getchar() ;

 

switch (c)

 

 {

 

  case 'A' :

 

    printf(" SELECCIONASTE AGREGAR") ;

 

    break ;

 

  case 'B' :

 

    printf(" SELECCIONASTE BORRAR") ;

 

    break ;

 

  case 'O' :

 

    printf("SELECCIONASTE ORDENAR") ;

 

    break ;

 

  case 'I' :

 

    printf(" SELECCIONASTE IMPRIMIR") ;

 

    break ;

 

  case '\n':

 

    printf(" NO HAZ SELECCIONADO NADA " ) ;

 

    break ;

 

  default  :

 

    printf("\n APRETASTE UN CARACTER ILEGAL" ) ;

 

    break ;

 

 }

 

}

El SWITCH empieza con la sentencia : switch (expresión) . La expresión contenida por los paréntesis debe ser ENTERA , en nuestro caso un caracter ; luego mediante una llave abre el bloque de las sentencias de comparación . Cada una de ellas se representa por la palabra clave "case" seguida por el valor de comparación y terminada por dos puntos . Seguidamente se ubican las sentencias que se quieren ejecutar , en el caso que la comparación resulte CIERTA . En el caso de resultar FALSA , se realizará la siguiente comparación , y así sucesivamente .

Prestemos atención tambien a la sentencia BREAK con la que se termina cada CASE. Una característica poco obvia del SWITCH , es que si se eliminan los BREAK del programa anterior , al resultar CIERTA una sentencia de comparación, se ejecutarán las sentencias de ese CASE particular pero TAMBIEN la de todos los CASE por debajo del que ha resultado verdadero.

La forma de interrumpir la ejecución luego de haber encontrado un CASE cierto es por medio del BREAK , el que dá por terminado el SWITCH .
Al final del bloque de sentencias del SWITCH , aparece una optativa llamada DEFAULT , la cual indica que si no se ha cumplido ningun CASE , ejecute lo que sigue. Es algo superfluo poner el BREAK en este caso , ya que no hay más sentencias despues del DEFAULT , sin embargo , como el orden en que aparecen las comparaciones no tiene importancia para la ejecución de la instrucción, puede suceder que en futuras correcciones del programa se agregue algún nuevo CASE luego del DEFAULT , por lo que es conveniente preveerlo , agregando el BREAK , para evitar errores de laboriosa ubicación .

WHILE

Su sintaxis podría expresarse de la siguiente forma :

 while(expresion)           ó           while(expresión) {

 

   proposición 1 ;                      proposición 1 ;

 

                                        proposición 2 ;

                                       

                                        }

Esta sintaxis expresada en palabras significaria: mientras (expresión) dé un resultado CIERTO ejecútese la proposición 1 , en el caso de la izquierda ó ejecútese el bloque de sentencias , en el caso de la derecha.

Por lo general , dentro de la proposición ó del bloque de ellas , se modifican términos de la expresión condicional , para controlar la duración de la iteración .

DO - WHILE

La sintaxis será :

do {

 

 proposición 1 ;

 proposición 2 ;

 

} while (expresión) ;

Expresado en palabras , esto significa : ejecute las proposiciones , luego repita la ejecución mientras la expresión dé un resultado CIERTO .

FOR

El FOR es  una forma abreviada de expresar un WHILE.

for ( expresión1 ; expresión2 ; expresion3 ) {

 

        proposición1 ;

        proposición2 ;

 

}

 

Esto  equivale a :

 

expresión1 ;

 

while ( expresión2

 

 

 

Descargar gratis los programas y compiladores necesarios para aprender a programar

 
 

  ¿Buscas algo?

Google

 

Regresar al índice de lenguaje c

 

Regresar a la página principal