La máquina de la cafetería
En la cafetería hay una máquina con botones. Pulsas el 1 y sale agua. Pulsas el 2 y salen galletas.
La máquina mira un solo número y elige entre muchas cosas. Si el botón no existe, no hace nada.
En Java hay una instrucción hecha justo para eso. Se llama switch.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| switch | Mira el valor de una variable y elige un camino. | switch (option) |
| case | Un valor posible. Significa "en el caso de". | case 1: |
| break | Sale del switch para no seguir con el siguiente case. | break; |
| default | Lo que se hace si ningún case coincide. | default: |
| Menú | Una lista de opciones numeradas entre las que elige el usuario. | 1 café, 2 zumo |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un valor, muchos casos
Con if y else if ya puedes elegir. Pero si comparas la misma variable con muchos valores, el código se llena de ==.
El switch lo deja más claro. Pones la variable arriba y debajo un case por cada valor.
Pruébalo: el menú del bar
public class Main {
public static void main(String[] args) {
int option = 2;
switch (option) {
case 1:
System.out.println("Bocadillo: 3.50 euros");
break;
case 2:
System.out.println("Café: 1.30 euros");
break;
case 3:
System.out.println("Zumo: 2.20 euros");
break;
default:
System.out.println("Esa opción no existe.");
}
// Prueba con 1, con 3 y con 7.
}
}
Ejemplo resuelto: el menú del bar
| option vale | Entra en | Se muestra |
|---|---|---|
| 1 | case 1 | Bocadillo: 3.50 euros |
| 2 | case 2 | Café: 1.30 euros |
| 3 | case 3 | Zumo: 2.20 euros |
| 7 | default | Esa opción no existe. |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Sin break, el programa sigue cayendo
Advertencia
Si olvidas break, Java entra en el case y sigue con el siguiente sin mirar su valor. Es el fallo más común con switch.
Pruébalo: un break olvidado
public class Main {
public static void main(String[] args) {
int option = 1;
switch (option) {
case 1:
System.out.println("Bocadillo");
// Aquí falta un break.
case 2:
System.out.println("Café");
break;
default:
System.out.println("Esa opción no existe.");
}
// Salen dos líneas. Añade break; después del Bocadillo.
}
}
Varios case juntos
A veces no quieres el break. Si varios valores hacen lo mismo, los pones uno debajo de otro y un solo break al final.
Los meses son un buen ejemplo. Abril, junio, septiembre y noviembre tienen 30 días.
Pruébalo: los días del mes
public class Main {
public static void main(String[] args) {
int month = 6;
switch (month) {
case 4:
case 6:
case 9:
case 11:
System.out.println("30 días");
break;
case 2:
System.out.println("28 días");
break;
default:
System.out.println("31 días");
}
// Prueba con 2, con 11 y con 12.
}
}
Switch también con textos
No solo sirve con números. También puedes mirar un String.
Cada case lleva un texto entre comillas. Java compara con equals por ti, así que aquí no tienes que escribirlo.
Pruébalo: el menú del día
public class Main {
public static void main(String[] args) {
String day = "viernes";
switch (day) {
case "lunes":
System.out.println("Macarrones");
break;
case "viernes":
System.out.println("Pizza");
break;
default:
System.out.println("Guiso del día");
}
// Cambia el día por "lunes" o por "jueves".
}
}
Repaso rápido
Inténtalo
Repaso rápido
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.