Vous êtes sur la page 1sur 3

Volumen del ortoedro

Volumen de la pirmide

La estructura condicional switch ... case se utiliza cuando queremos evitarnos las llamadas escaleras de decisiones. La estructura if nos puede proporcionar, nicamente, dos resultados, uno para verdadero y otro para falso. Una estructura switch ... case, por su parte, nos permite elegir entre muchas opciones: ejemplo con un salario con la condicion switch /*si*/ #include <stdio.h> #include <stdlib.h> main() { int nivel; float salario, slanuevo; printf("introduce tu nivel\n"); scanf("%d",&nivel); printf("dame tu salario\n "); scanf("%f",&salario); switch (nivel) { case 1: slanuevo=salario+(salario*.035); printf("tu salario es:%f\n",slanuevo); break; case 2: slanuevo=salario+(salario*.041);

printf("tu salario es:%f\n",slanuevo); break; case 3: slanuevo=salario+(salario*.048); printf("tu salario es:%f\n",slanuevo); break; case 4: slanuevo=salario+(salario*.053); printf("tu salario es:%f\n",slanuevo); break; default: printf("tu salario es:%f\n",salario); } system ("pause"); return 0; } Otro ejemplo: #include <stdio.h> #include <stdlib.h> int main(void) { int dia; printf("que numero de da de la semana es?"); scanf("%d",&dia); switch(dia) { case 1 : printf("Lun, Luna"); break; case 2 : printf("Mar, Marte"); break; case 3 : printf("Mier, Mercurio"); break; case 4 : printf("Jue, Jupiter"); break; case 5 : printf("Vie, Venus"); break; case 6 : printf("Sab, Saturno"); break; case 7 : printf("Dom, Sol");

break; default : printf("No existe"); } system ("pause"); return 0; }

La estructura anterior, de realizarse con sentencias if, necesitara cuatro de ellas, resultando un enorme bloque muy difcil de leer. En la mayora de los casos, adems, la sentencia switch proporciona una ganancia en velocidad del cdigo, pues permite al compilador trabajar en base a que se trata de una decisin mltiple para una nica variable, cosa que con sentencias if el compilador no tiene por qu detectar. Como vemos, para cada valor de la variable se ejecuta un bloque de sentencias distinto, en el que no necesitamos llaves. Hay un caso especial,default, que se ejecuta si ningn otro corresponde, y que no es necesario poner. Es, en todo, equivalente al bloque else de una sentencia if. Las sentencias break son muy importantes, ya que el comportamiento normal de un bloque switch es ejecutarlo todo desde la etiqueta case que corresponda hasta el final. Por ello, si no queremos que se nos ejecute ms de un bloque, pondremos sentencias break al final de cada bloque excepto el ltimo. Es decir, las etiquetas case son puntos de entrada de la ejecucin, y no implican que al acabarse el bloque case la ejecucin salte al final del bloque switch. Las etiquetas case siguientes a la que hemos utilizado para entrar son, sencillamente, ignoradas. A la ausencia de sentencias break se le llama, en ocasiones, "dejar caer la cascada switch".

Vous aimerez peut-être aussi