You are on page 1of 3

Sentencia switch

Esta estructura permite considerar decisiones para más de dos posibilidades.

En la sentencia switch, la expresión a evaluar será entera o carácter, por lo tanto, el


número de opciones es mucho mayor, y en consecuencia, también es mayor el número
de diferentes sentencias que se pueden ejecutar.
Sintaxis:

switch (<expresión entera>)


{
case <expresión constante numérica1>:
[<sentencias1>]
break;
case <expresión constante numérica2>:
[<sentencias2>]
break;
...
case <expresión constante numérican>:
[<sentenciasn>]
break;
default : [<sentencia>]]
}

switch (<expresión carácter>)


{
case <expresión_caracter entre apóstrofos>:
[<sentencias1>]
break;
case <expresión_caracter entre apóstrofos >:
[<sentencias2>]
break;
...
case <expresión_carácter entre apóstrofos >:
[<sentenciasn>]
break;
default : [<sentencia>]]
}

http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm

http://c.conclase.net/curso/index.php?cap=005c#Se_seleccion
Se puede eludir la ejecución secuencial normal usando la sentencia de ruptura break
para ejecutar sólo parte de las sentencias.

Si el valor de la expresión entera no satisface ningún case, es decir, si no existe


un case con una expresión constante igual al valor de la expresión entera, el control
parará a la sentencia etiquetada con la etiqueta default.
Todas las etiquetas son opcionales, tanto default como todos los case. Si no se
satisface ningún case, ni aparece la etiqueta default, se abandonará la
sentencia switch sin ejecutar ninguna sentencia.
Por ejemplo:

bool EsVocal;
char letra;
...
switch (letra)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
EsVocal = true;
break;
default:
EsVocal = false;
}

En este ejemplo letra es una variable de tipo char y EsVocal de tipo bool.

Si el valor de entrada en el switch corresponde a una vocal, EsVocal saldrá con un


valor verdadero, en caso contrario, saldrá con un valor falso.

El ejemplo ilustra el uso del break. Si por ejemplo, letra contiene el valor 'a', se
cumple el primer case, y la ejecución continúa en la siguiente sentencia:
EsVocal = true,
Ignorando el resto de los case hasta el break, que nos hace abandonar la
sentencia switch.

http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm

http://c.conclase.net/curso/index.php?cap=005c#Se_seleccion
Ejemplo 1:

#include<stdio.h>
main() {
char ch;
printf("Introduzca una vocal: ");
ch=getchar();
switch(ch) {
case 'a': puts("Se ha pulsado una a.");
break;
case 'e': puts("Se ha pulsado una a.");
break;
case 'i': puts("Se ha pulsado una a.");
break;
case 'o': puts("Se ha pulsado una a.");
break;
case 'u': puts("Se ha pulsado una a.");
break;
default: puts("Error");
}
}

http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm

http://c.conclase.net/curso/index.php?cap=005c#Se_seleccion

You might also like