Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

Elegir con switch

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

30 minutos

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

PalabraQué significaEjemplo
switchMira el valor de una variable y elige un camino.switch (option)
caseUn valor posible. Significa "en el caso de".case 1:
breakSale del switch para no seguir con el siguiente case.break;
defaultLo 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

Código: java
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 valeEntra enSe muestra
1case 1Bocadillo: 3.50 euros
2case 2Café: 1.30 euros
3case 3Zumo: 2.20 euros
7defaultEsa 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

Código: java
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

Código: java
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

Código: java
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 preguntas
Pruébalo: tus respuestas se corrigen aquí y después se olvidan. Inicia sesión si quieres que se guarde tu puntuación y continuar donde lo dejaste.Iniciar sesión para guardar tu puntuación

Tus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.

La lección continúa

4 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.