Sentencia switch (selección múltiple) en java

A veces es necesario comparar el valor de una variable con una serie de valores concretos. La selección múltiple es muy parecida (aunque no es exactamente igual) a una secuencia de varias sentencias if.

El formato de switch es el que se muestra a continuación. En legunaje natural sería algo así como “Si variable vale valor1 entonces entra por case valor1:, si variable vale valor2 entonces entra por case valor2:,… si variable no vale ninguno de los valores que hay en los distintos case entonces entra por default:.


switch(variable) {
case valor1:
sentencias
break;
case valor2:
sentencias
break;
. . .
default:
sentencias
}



A continuación tienes un ejemplo completo en Java. Se pide al usuario un número de mes y el programa da el nombre del mes que corresponde a ese número.





 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class SentenciaSwitch {
public static void main(String[] args) {
 System.out.print("Por favor, introduzca 
 un numero de mes: ");
 int mes = 
 Integer.parseInt(System.console().readLine());
 String nombreDelMes;
 switch (mes) {
  case 1:
    nombreDelMes = "enero";
    break;
  case 2:
   nombreDelMes = "febrero";
   break;
  case 3:
   nombreDelMes = "marzo";
   break;
  case 4:
   nombreDelMes = "abril";
   break;
  case 5:
   nombreDelMes = "mayo";
   break;
  case 6:
   nombreDelMes = "junio";
   break;
  case 7:
   nombreDelMes = "julio";
   break;
  case 8:
   nombreDelMes = "agosto";
   break;
  case 9:
   nombreDelMes = "septiembre";
   break;
  case 10:
   nombreDelMes = "octubre";
   break;
  case 11:
    nombreDelMes = "noviembre";
    break;
  case 12:
    nombreDelMes = "diciembre";
    break;
  default:
    nombreDelMes = "no existe ese mes";
}
  System.out.println("Mes " + mes + ": " + 
  nombreDelMes);
}
}

Observa que es necesario introducir un break después de la asignación de la variable nombreDelMes. 
nombreDelMes. En caso de no encontrarse el break, el programa continúa la ejecución en la línea siguiente. El bloque que corresponde al default se ejecuta cuando la variable no coincide con ninguno de los valores de los case. Escribiremos siempre el default al final de la sentencia switch aunque no sea necesario. La sentencia switch se utiliza con frecuencia para crear menús.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class MenuConSwitch {
public static void main(String[] args) {
 System.out.println(" CÁLCULO DE ÁREAS");
 System.out.println(" ----------------");
 System.out.println(" 1. Cuadrado");
 System.out.println(" 2. Rectángulo");
 System.out.println(" 3. Triángulo");
 System.out.print("\n Elija una opción (1-3): ");
 int opcion = Integer.parseInt(System.console().readLine());
 double lado;
 double base;
 double altura;
 switch (opcion) {
  case 1:
   System.out.print("\nIntroduzca el lado del cuadrado en cm: ");
   lado = Double.parseDouble(System.console().readLine());
   System.out.println("\nEl área del cuadrado es " + (lado * lado) + " cm2");
  break;
  case 2:
   System.out.print("\nIntroduzca la base del rectángulo en cm: ");
   base = Double.parseDouble(System.console().readLine());
   System.out.print("Introduzca la altura del rectángulo en cm: ");
   altura = Double.parseDouble(System.console().readLine());
   System.out.println("El área del rectángulo es " + (base * altura) + " cm2");
  break;
  case 3:
   System.out.print("\nIntroduzca la base del triángulo en cm: ");
   base = Double.parseDouble(System.console().readLine());
   System.out.print("Introduzca la altura del triángulo en cm: ");
   altura = Double.parseDouble(System.console().readLine());
   System.out.println("El área del triángulo es " + ((base * altura) / 2) + " cm2");
  break;
  default:
  System.out.print("\nLo siento, la opción elegida no es correcta.");
 }
}
}

Compartir

1 Response to "Sentencia switch (selección múltiple) en java"