Sentencias de control III - switch

Hoola!, no había tenido tiempo para publicar otra entrada, pero bueno por el momento tampoco tengo mucho tiempo libre… pero por un carajo, que importa. Dejaré mis demás deberes a un lado.
En ocasiones es necesario realzar una misma variable con otros datos diferentes, este problema puede ser abordado utilizando muchos if, pero esa solución resulta poco legible en ocasiones. Java nos ofrece la sentencia switch para cuando nos topemos con un caso así, veamos un diagrama de cómo funciona el switch:





Las expresiones pueden ir desde 0 … n, es decir se puede colocar tantas como se quieran, la expresión de el rombo es comparado con las demás expresiones y si es igual a una, se ejecutan las instrucciones del mismo y continua el flujo normal del programa.

Sintaxis:



  switch(expresión)
  {
   case exp1:
    sentencias;
    [break;]
   case exp2:
    sentencias;
    [break;]
   …
   case n:
    sentencias;
    [break;]

   [default: [break]]
  }

Aquello que se encuentra entre corchetes significa que es opcional colocarlo, el break aquí es utilizado para salir del switch.
Veamos un ejemplo:
public class Dias
{
public static void main(String[] args)
{
int dia = 2;
switch(dia)
{
case 1:
System.out.println("Domingo");
break;
case 2:
System.out.println("Lunes");
break;
case 3:
System.out.println("Martes");
break;
case 4:
System.out.println("Miercoles");
break;
case 5:
System.out.println("Jueves");
break;
case 6:
System.out.println("Viernes");
break:
case 7:
System.out.println("Sabado");
break;
}
}
}

El programa imprime el nombre del dia según el valor que tenga la variable dia.
Es sencillo si lo analizamos, la variable dia es comparada con las expresiones en los casos.
Cuando entra al swich compara con los casos, es decir se va recorriendo:

¿Es dia igual a 1? – No
¿Es dia igual a 2? – Si
Imprime(“Lunes”);

Si quitáramos el break en todos los casos el resultado de nuestro programa seria:
Lunes
Martes
Miércoles
Jueves
Viernes
Sabado

Ven que sucede, se va recorriendo caso por caso sin ir comparando con las expresiones hasta topar con un break o salir del switch.
Veamos otro ejemplo:
public class Numero
{
public static void main(String[] args)
{
int n = 3;
switch(dia)
{
case 1:
System.out.println("Uno");
break;
case 2:
System.out.println("Dos");
break;
default:
System.out.println("Otro numero");
break;
}
}
}

Aquí utilizamos default, este entra cuando la expresión no cumple con ninguno de los casos. Por lo tanto la salida producida por nuestro programa es:

Otro numero

Ya que:
¿Es n igual a 1? – No
¿Es n igual a 2? – No
Predeterminado
Imprime(“Otro número”);

Como no es igual a 1 ni a 2 entonces entra al default e imprime dicho mensaje.

No hay comentarios :

Publicar un comentario