163.switch (palabra reservada)

Construcción sintáctica muy compacta para representar la ejecución de una entre varias sentencias dependiendo de un valor:

ejemplo

ejemplo

switch (mes) {

case 1:

    print(“enero”);

    break;

case 2:

    print(“febrero”);

    break;

...

default:

    print(“no se”);

switch (mes) {

case 1: case 3: case 5: case 7:

case 8: case 10: case 12:

    dias = 31;

    break;

case 4: case 6: case 9: case 11:

    dias = 30;

    break;

case 2:

    if (bisiesto)

        dias = 29;

    else

        dias = 28;

    break;

default:

    dias = 0;

}

 

·         Sólo funcionan sobre enteros, booleanos o caracteres

·         Chequean que no hay duplicados

·         las condiciones tienen que ser excluyentes

·         Mejor legibilidad

·         Sin “break”, el programa no saltaría al final

·         El “default” es opcional; si no aparece, no se ejecuta nada

Las sentencias “break” provocan la terminación de la sentencia condicional. Si no se aparece, el código siguiente se sigue ejecutando.

                                                                    Switcher.java               

public class Switcher {

  public static void main(String[] argumentos) {

    int m = Integer.parseInt(argumentos[0]);

    int n = 0;

    switch (m) {

      case 0:

        n++;

      case 1:

        n++;

      case 2:

        n++;

      default:

        n++;

    }

    System.out.println("n = " + n);

  }

}

$ java Switcher 0

n = 4

 

$ java Switcher 1

n = 3

 

$ java Switcher 2

n = 2

 

$ java Switcher 3

n = 1

 

$ java Switcher 100

n = 1

 

Temas relacionados

Vademécum