Menú Curso Java Básico : Utilización de Switch.

(Anterior) Herencias ("Inheritance"), Condicionales y Ciclos.
En base a su ambiente, abra un Editor de Textos para generar el siguiente ejemplo.

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 ; 

  • Dada una variable de entrada esta se define seguido del vocablo switch.

  • Se abre una llave para iniciar los posibles valores que pueda tomar dicha variable.

  • Los juegos de valores son iniciados con case seguido del posible valor de la variable, posteriormente es definido un juego de instrucciones que serán ejecutados en caso de corresponder con el valor de la variable y finalmente (opcional) se utiliza vocablo break para salir de ciclo case.

  • Un valor opcional es la definición de la linea default, cuyas instrucciones serán ejecutadas en caso que la variable del switch no coincida con los valores definidos.

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

  • Se define un primitivo con valor de 8, el cual es utilizado como variable para un switch.

  • Dentro del switch son definidos valores del 1 al 12, los cuales tienen como instrucción imprimir a pantalla el valor del mes correspondiente.

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.

Terminos Legales de Contenido ©2000-2011 Osmosis Latina

Diseñado bajo estándares : XHTML   CSS  

webmaster@osmosislatina.com