Atrás

Expresiones Switch

25 ene 2021

Autor: Ing. Rodrigo Andregnette

Imagen ampliada

Java 12

 

Java 12 introduce expresiones switch, esta herramienta permite el uso de switch para asignar directamente un valor a una variable.

 

En el siguiente ejemplo se puede apreciar el uso de switch para inicializar la variable id:

 

 

En este caso, si el nombre es jhon, a la variable id se le asignará el valor 12212.

 

Características:

  • Break

Al traducir al ejemplo anterior a la declaración switch regular de Java se obtiene lo siguiente:

 

 

Cada case tiene un break. La falta de break produciría que se ejecuten todos los case en cascada. Por ejemplo, si la expresión anterior no tuviera breaks y se ejecuta el switch con name igual a "jhon", la id de resultado sería "293743" porque ejecutaría primero la expresión del case de jhon, luego (dado la falta de break) ejecuta el de mary, y por último el de tom.

 

Esta característica del switch puede dar lugar a errores dado que le falta accidental de un break tiene como resultado la ejecución de código erróneo.

 

Volviendo a la expresiones switch de Java 12, una de las ventajas es que no requiere break, se ejecuta únicamente la sentencia de case que corresponde al dato ingresado.

 

  • Case múltiple

     

¿Qué pasa cuando se quiere ejecutar una misma sentencia para más de un case?

Se puede generar una lista separada por coma (,) como se muestra en el siguiente ejemplo:

 

En este caso jhon, peter y paul devuelven el mismo resultado.

 

  • Ejecutar lógica adicional en expresiones switch

Mientras que el principal propósito de las expresiones switch es asignar un valor, podría ser necesario lógica para determinarlo. Para implementar un bloque de código dentro del case hay que encerrarlo dentro de corchetes y en la última sentencia agregar la palabra reservada yield junto al valor a ser devuelto.

 

 

  • Excepciones

Es posible utilizar cualquiera de las declaraciones case para lanzar excepciones.

 

 

  • Default

En caso de que el default no sea definido generará un error de compilación, sin embargo no es así en todos los casos, si el switch recibe un enumerado y en los case se cubren todos los valores posibles no será necesario el default.

 

¿Cuándo usar expresiones switch?

Las expresiones switch no son un reemplazo de las declaraciones switch, son más bien un agregado al lenguaje.

Hay que usar expresiones switch para asignar valores y declaraciones switch cuando se necesita invocar declaraciones de manera condicional.

 


Newsletter Newsletter

Suscríbase a nuestro Newsletter para recibir el contenido directo en su bandeja de correo.

Este campo es obligatorio.
Este campo es obligatorio.

Enlaces de interés

Últimas noticias
Proyectos