Artículos
Java

Días del mes en Java

04/Sep/2015

Este ejemplo está enfocado al aprendizaje básico con Java y al uso, menos común, de las sentencias case dentro de la sentencia switch que consiste en agrupar varias sentencias case. Para ello vamos a utilizar el ejemplo que nos calcula los días de la semana en Java.

Lo primero que haremos será definir una variable int con el número del mes del cual queremos conocer los días que tiene.

int iMes = 8;

Ademas definiremos una variable de tipo String en la que indicaremos los días que tiene el mes:

String sMes;

Ahora hay que mostrar los días que tiene ese mes. Las alternativas que tenemos son dos. Por un lado podemos tener un conjunto de sentencias if-then-elseif anidadas.

if (iMes == 1)
  sMes = "31 días";
else if (iMes == 2)
  sMes = "28 días o 29 días (en año bisiesto)";
else if (iMes == 3)
  sMes = "31 días"
...

Pero como bien sabemos las estructuras selectivas en rama se resuelven mejor con una sentencia switch. En este caso podemos caer en la tentación de simular mucho la estructura if-then-else y acabar escribiendo lo siguiente:

switch (iMes) {
  case 1: 
    sDias = "El mes tiene 31 días";
    break;
  case 2:			
    sDias = "El mes tiene 28 días (o 29 días si es año bisiesto)";
    break;			
  case 3:			
    sDias = "El mes tiene 31 días";
    break;
  case 4:			
    sDias = "El mes tiene 30 días";
    break;
  ...
  default:
    sDias = "Mes incorrecto";
}

Esto no acortaría nuestra codificación y acabaríamos teniendo algo muy parecido al if-then-elseif. Por lo cual no optimizaríamos mucho nuestro código.

Lo que deberemos de hacer es apoyarnos en las capacidades que tiene la sentencias switch de poder agrupar sentencias case que devuelvan el mismo bloque de sentencias como respuesta.

Una estructura que sería algo parecida a:

switch (expresion) {
  case valor1: case valor2: case valor3:
	bloque1;
	break;
  case valor4: case valor5: case valor6:
	bloque2;
	break;
  …
  default:
	bloque_por_defecto;
}

De esta forma podríamos codificar nuestro programa para calcular los días del mes en Java de la siguiente forma más óptima:

switch (iMes) {
  case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    sDias = "El mes tiene 31 días";
    break;
  case 4: case 6: case 9: case 11:
    sDias = "El mes tiene 30 días";
    break;
  case 2:			
    sDias = "El mes tiene 28 días (o 29 días si es año bisiesto)";
    break;			
  default:
    sDias = "Mes incorrecto";
}

Así que recuerda que si tienes estructuras switch donde varios valores devuelven el mismo bloque puedes utilizar las sentencias case agrupadas, al igual que hemos hecho aquí para calcular los días del mes en Java.

Código Fuente

Descárgate el código fuente de Días del mes en Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
2 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios