Control Y Sentencias De Switch

Páginas: 7 (1745 palabras) Publicado: 16 de junio de 2012
ESTRUCTURAS DE CONTROL - SENTENCIA SWITCH

* Sentencia switch.
* Importancia de break.
* Importancia de default.

Sentencia switch.
En las secciones anteriores se ha estudiado un tipo de flujo de control limitado a las posibilidades ofrecidas por las sentencias alternativas (if-else) y repetititivas (for, while). Las sentencias alternativas permiten especificar la reaccióndel programa en distintas circunstancias; si la lógica del algoritmo empleado se ajusta a un comportamiento más o menos dicotómico, es posible construir un árbol de sentencias if() anidadas que generen el comportamiento necesario. Sin embargo, es frecuente hallar grupos de situaciones (y por tanto de respuestas de programa) que se reducen a una lista de posibilidades mutuamente excluyentes.Ciertamente, se puede implementar un algoritmo de este tipo mediante múltiples sentencias if()-else anidadas, pero esta solución resulta farragosa y poco eficiente, porque el código tiene que ir comprobando una por una todas las posibilidades (todas las condiciones if()) hasta encontrar la correcta.
  El lenguaje C ofrece otra posibilidad: construir una expresión ordinal (posiblemente basada en un tipoenumerado) que tipifique las posibles situaciones y ejecutar el código correspondiente a cada valor de esta expresión sin necesidad de examinar los demás. La sentencia switch es un selector multivía, que admite como argumento el valor de una expresión ordinal, y desencadena la ejecución del código correspondiente, identificado mediante uno o más valores constantes del mismo tipo ordinal que laexpresión. La sintaxis de esta sentencia es como sigue:
switch( expresión_ordinal )
{
case constante_1 : Bloque_1;
break;
case constante_2 : Bloque_2;
break;
case constante_3 :
case constante_4 :
caseconstante_5 : Bloque_3;
break;
...
default : Bloque_4;
break;
}

Al evaluar la expresión_ordinal se obtiene un entero (quizá el valor de una variable de tipo enum) o un carácter. Si este valor es igual a la constante que acompaña a alguna de las cláusulas case presentes en el cuerpo dela sentencia switch, entonces se ejecuta el bloque de código situado a la derecha de los dos puntos que acompañan a la cláusula case en cuestión. El bloque puede estar formado por una o más sentencias. Puede haber varias cláusulas case asociadas a un mismo bloque de código; en tal caso, el bloque ejecutado será el mismo para todos aquellos casos en que el valor de la expresión de control sea elde cualquiera de las cláusulas case asociadas a ese bloque. El programa siguiente es un ejemplo sencillo de uso de la sentencia switch:

#include<stdio.h>

int main(int contador, char * argumento[])
{
int i;
switch(contador)
{
case1: printf("\nNo me ha dado argumentos.\n");
break;
case 2: printf("\nMe ha dado un argumento.\n");
break;
case 3:
case 4:
case 5: printf("\nMe ha dado 2, 3 o 4 argumentos.\n");
break;
default: printf("\nMe ha dado más de 4argumentos.\n");
break;
}
printf("\n");
/*
Ahora se muestran los argumentos dados, si los hay
*/
for(i=0;i<contador;i++)
printf("Argumento[%d] = %s\n", i, argumento[i]);

printf("\nTerminación normal del...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Sentencia switch
  • Sentencia Switch en C#
  • Sentencias de control
  • sentencias de control
  • Sentencias De Control
  • Sentencias De Control
  • Estructuras De Selección: Sentencias If Y Switch
  • La sentencia switch

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS