Utilización de Switch

Sintaxis del switch.

La Sintaxis empleada por un switch es la siguiente:

switch (variable)  { 
     case <posible valor> : Instrucciones : break;
     case <posible valor> : Instrucciones : break;
     case <posible valor> : Instrucciones : break;
     case <posible valor> : Instrucciones : break;
     case <posible valor> : Instrucciones : break;
     default : Instrucciones ; 

Código Fuente Meses.java

 
public class Meses {
    public static void main(String[] args) {
        int month = 8;
        switch (month) {
            case 1:  System.out.println("Enero"); break;
            case 2:  System.out.println("Febrero"); break;
            case 3:  System.out.println("Marzo"); break;
            case 4:  System.out.println("Abril"); break;
            case 5:  System.out.println("Mayo"); break;
            case 6:  System.out.println("Junio"); break;
            case 7:  System.out.println("Julio"); break;
            case 8:  System.out.println("Agosto"); break;
            case 9:  System.out.println("Septiembre"); break;
            case 10: System.out.println("Octubre"); break;
            case 11: System.out.println("Noviembre"); break;
            case 12: System.out.println("Diciembre"); break;
        }
    }
}

Clase Meses

Cuando se describió la Sintaxis de un switch se mencionó que el uso de break al final de cada declaración (case) era opcional, esto se debe a la posibilidad que exista más de un valor que deba ejecutar las mismas instrucciones, a continuación se describe este caso:

Código Fuente Meses2.java

 
public class Meses2 {
    public static void main(String[] args) {

        int mes = 10;
        int año = 2002;
        int numDias = 0;

        switch (mes) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                numDias = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                numDias = 30;
                break;
            case 2:
                if ( ((año % 4 == 0) && !(año % 100 == 0))
                     || (año % 400 == 0) )
                    numDias = 29;
                else
                    numDias = 28;
                break;
        }
        System.out.println("Numero de Dias = " + numDias);
    }
}

Clase Meses2

En esta Clase el uso de switch varía, ya que son agrupados distintos valores, al omitir el uso del vocablo break; el uso de break en un switch es critico ya que al no ser definido puede ocasionar un comportamiento errático, ya que al no indicarse se continúan evaluando los distintos valores restantes en un switch, posiblemente causando un comportamiento no deseado.

Finalmente, vale mencionar que las datos que se puede evaluar a través de un switch son solo primitivos, esto es, no se puede definir un juego de String's y comparar sus valores, para este tipo de situaciones (String u otro Objeto) se requiere usar condicionales if/else anidadas.

Menú Curso

Objetos, Java y JDK

Composición, Clases y Librerías("Packages").

Variables, Constructores, Métodos y Comentarios.

Herencias ("Inheritance"), Condicionales y Ciclos

Operadores, Errores y Datos de Entrada/"Streams".

Interfases, Arreglos y Polimorfismo.

Collections Framework, "Threads", Garbage Collection y "Assertions".

Java 5 / JDK 5 .

Instalación Software.

Codigo.