[C con Clase] sentencia switch

Mariano Demarchi marchi.hh en gmail.com
Mie Jul 29 19:19:39 CEST 2009


Hola Pablo, la sentencia switch es un selector, que toma una expresion de
tipo entero y de acuerdo a su valor ejecutara o no un bloque de codigo.
Ejemplo:
char letra;
switch(letra)
{
case 'a':

printf("%c es vocal\n",letra);

break;

case 'e':

printf("%c es vocal\n",letra);

break;

case 'i':

printf("%c es vocal\n",letra);

break;

case 'o':

printf("%c es vocal\n",letra);

break;

case 'u':

printf("%c es vocal\n",letra);

break;

default:

printf("%c no es vocal",letra);

break;

}
Como notaras, al final del codigo dentro de cada case hay un "break;", esto
es por que si no la ejecucion continuaria en el codigo del siguiente "case"
o "default" (en caso de que lo halla). Esto se debe al funcionamiento del
switch que se podria traducir como:
if(letra=='a') goto caso_a;
if(letra=='e') goto caso_e;
if(letra=='i') goto caso_i;
if(letra=='o') goto caso_o;
if(letra=='u') goto caso_u;
goto defa;
caso_a:

printf("%c es vocal",letra);

goto fin;

caso_e:

printf("%c es vocal",letra);

goto fin;

caso_i:

printf("%c es vocal",letra);

goto fin;

caso_o:

printf("%c es vocal",letra);

goto fin;

caso_u:

printf("%c es vocal",letra);

goto fin;

defa:

printf("%c no es vocal");

goto fin;

fin:
Ahora si es bastante claro que si no estubieran los "goto fin;", se seguiria
con la ejecucion en la siguiente linea, el "break;" hace el mismo trabajo
del "goto fin;"
Habiendo visto esto se podria escribir reescribir el switch como:
char letra;
switch(letra)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':

printf("%c es vocal\n",letra);

break;

default:

printf("%c no es vocal\n",letra);

break;

}
Saludos
El 29 de julio de 2009 13:13, Pablo Coletto
<pablo06_cabj_ec en hotmail.com>escribió:

> Hola recien estoy empezando con el curso de programacion y no logro
> entender las sentencias switch. como es su sintaxis y algunos ejemplos para
> entender su funcionamiento.
> Desde ya gracias y perdon por mi ignorancia
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090729/31e1a200/attachment.html>


Más información sobre la lista de distribución Cconclase