Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sentencia switch
< Programacin en Java
Sentencia if-else
Sentencia switch
Vamos a desarrollar una calculadora totalmente elemental. Sin muchas caractersticas salvo
de realizar operaciones aritmticas con dos operandos. Disponemos de una variable de tipo
char que nos indicar que tipo de operacin se debe efectuar. Realizamos la operacin y
mostramos el resultado en la pantalla. Despus de luchar con las sentencias if-else nos qued
algo parecido a esto:
Ya nos alejamos bastante de las decisiones simples. Aqu tenemos de una cadena de
sentencias if-else que realizan un seleccin mltiple. La condicin general tiene mas dos
alternativas. Tendremos que acudir a la sentencia switch que se encarga de este tipo de
seleccin.
switch( expresin ) {
case constante1:
sentencia1;
...
break;
...
case constanteN:
sentenciaN;
...
break;
default:
sentencia;
...
break
}
El valor de la expresin y de las constantes tiene que ser de tipo char, byte, short o int. No hay
lugar para booleanos, reales ni long porque, en la ejecucin, todos los valores que
incorporamos se transforman en valores de tipo int.
Al evaluar la expresin de switch, el intrprete busca una constante con el mismo valor. Si la
encuentra, ejecuta las sentencias asociadas a esta constante hasta que tropiece con un
break. La sentencia break finaliza la ejecucin de esta estructura. Si no encuentra ninguna
constante que coincida con la expresin, busca la lnea default. Si existe, ejecuta las
sentencias que le siguen. La sentencia default es opcional.
Volviendo a la mini calculadora, vemos como se organiza las distintas alternativas de acuerdo
al valor de una constante char. Estas alternativas representan las distintas operaciones que
estn disponibles y solo se ejecutar una sola. Por ejemplo, si el valor del operador (en el
programa figura op) es igual al signo de la suma , la sentencia switch ejecutar solamente la
lnea que corresponde con esta operacin.
Que ocurre si cambiamos la variable op por algn carcter distinto a los especificados? Entra
en juego la alternativa default y todas las setencias que le siguen. En este caso imprime por
pantalla el mensaje "error". Si nos olvidamos de incorporar esta alternativa, no pasa nada.
Ninguna sentencia dentro de la estructura switch se ejecutar.
Ya que hablamos de default, es conveniente mencionar que no es necesario que quede
relegado al final de la estructura. Podemos situarla al comienzo , en el medio, en definitiva, en
donde nos quede mas til segn la lgica que apliquemos o donde queramos.
switch ( op ) {
default :
System.out.println("error");
break;
case '+':
System.out.println( a + b );
break;
...
switch ( op ) {
case '+':
System.out.println( a + b );
case '-':
System.out.println( a - b );
break;
...
El resultado es : 2
0
Nos dio los resultados de la suma y la resta. Al no tener un break en la suma, se pas de largo
y ejecuto la de abajo , que justamente era la resta.
En algunas circunstancias, el break est de mas. Es posible contruir una estructura en donde
se ejecuten mas de una alternativa al mismo tiempo. Vemos un ejemplo:
case 2:
System.out.println("********");
case 1:
System.out.println("********");
}
}
}
El programa tiene por objetivo listar un nmero dado de lneas. Se pueden dibujar hasta 5
lneas trazadas con el smbolo *. La cantidad depender del valor de la variable j. Por ejemplo,
si j vale 2, activa la alternativa que tiene esta constante y como no tiene un break que la
obstaculice sigue con la alternativa de abajo.