sábado, 2 de julio de 2016

Selección para Java

"Seleccion case/switch"

← Sentencia if-elseSentencia switch
Operador if-else →
La sentencia switch se encarga de estructurar una selección múltiple. Al contrario del enunciado if-else que sólo podemos indicar dos alternativas, maneja un número finito de posibilidades. La estructura general del enunciado switch es la siguiente:
 switch( expresión ) {
 case constante1:
      sentencia1;
      ...
      break;
      ...
 case constanteN:
      sentenciaN;
      ...
      break;
 default:
      sentencia;
      ...
      break
 }
El valor de la expresión 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 ejecución, todos los valores que incorporamos se transforman en valores de tipo int.

¿Que ocurre si cambiamos la variable op por algún carácter 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 según la lógica que apliquemos o donde queramos.
     switch ( op ) {
     default :
          System.out.println("error");
          break;
     case '+':
          System.out.println( a + b );
          break;
           ...
En el ejemplo presentado, funciona de la misma manera un default al principio. Obviamente no debe existir mas de una alternativa default.
Las sentencias break son opcionales. Se utilizan con el propósito de separar las alternativas. Pero fieles a nuestro estilo de meternos en problemas decidimos que algunos break deben desaparecer. Probemos que ocurre con este código:
     switch ( op ) {
     case '+':
          System.out.println( a + b );
     case '-':
          System.out.println( a - b );
          break;
           ...
Es el mismo que el original, solo "olvidamos" de agregarle un break al final de la alternativa suma. Si cambiamos el valor de op por el carácter '+' y ejecutamos el programa, nos responde de esta manera:

  El resultado es : 2
  0



No hay comentarios:

Publicar un comentario