[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-0001.html>
Más información sobre la lista de distribución Cconclase