AjLearning
AjLearning 0.1    





Introducción a Java - Múltiple decisión con switch

Curso Introducción a Java

    Anterior     Siguiente

Nos encontramos con otra conocida construcción del lenguaje C/C++ de nuevo aplicada en Java: el comando switch.

Toma la forma:

switch (<expresión>) { case <valor 1> : <sentencias 1> .... case <valor 2> : <sentencias 2> .... case <valor n> : <sentencias n> .... default : <sentencias default> .... } Lo que hace es evaluar la primera expresión entre paréntesis, y la compara con cada valor (constante) que se especifica en los case. Si el valor coincide con el valor de un case, se ejecutan las sentencias que le siguen, hasta llegar al fin del switch, o al llegar a un comando break (corte). Si el valor no coincide con ningún case, y hay una opción default (asumida), se ejecutan las sentencias asumidas. He aquí un ejemplo, que en base al valor de la variable entera comando, ejecuta un proceso u otro (se supone que SUMAR, RESTAR, MULTIPLICAR y DIVIDIR, son constantes ya definidas):
switch (comando) { case SUMAR: sumar() ; break ; case RESTAR: restar() ; break ; case MULTIPLICAR: multiplicar() ; break ; case DIVIDIR: dividir() ; break; default: throw new InvalidOperationException(comando); }
Nótese el uso de break: este comando hace que, si entramos, por ejemplo, en el case correspondiente al valor MULTIPLICAR, se ejecuten las sentencias que le siguen, pero sólo hasta el break. Si no se pusiera break, seguiría la ejecución, aún cuando se llegue a otro case. Un ejemplo que puede ser útil para ilustrar el no uso de break, es:
switch (valor % 10) { case 0 : case 2 : case 4 : case 6 : case 8 : terminaEnDigitoPar(valor) ; break ; case 1 : case 3 : case 5 : case 7 : case 9 : terminaEnDigitoImpar(valor) ; break ; } En este ejemplo, la falta de break nos ayuda: si la expresión se evalúa como 1, se ejecuta el case 1 :, que "cae" en el case 3 :, que a su vez sigue en el case 5, y así. Vemos también que no es obligatoria la cláusula default.

Programado por Angel J. Lopez www.ajlopez.com