Páginas

Estructura de Control switch

el switch es una estructura de control que permite ejecutar diferentes bloques de código según el valor de una variable o expresión. Es una alternativa más limpia que usar muchos if-else.

Sintaxis del switch

  
switch (expresion) {
    case valor1:
        // Código si expresion == valor1
        break;

    case valor2:
        // Código si expresion == valor2
        break;

    case valor3:
        // Código si expresion == valor3
        break;

    default:
        // Código si ninguno de los casos anteriores coincide
        break;
}

  

Explicación paso a paso

  • switch (expresion)

    La expresión se evalúa una sola vez. Su resultado se compara con cada case.

    Puede ser de tipo:

    int, byte, short, char, String, o enum (tipos enumerados).

  • case valor:

    Si el valor del case coincide con el de la expresión, se ejecuta el bloque de código asociado.

  • break;

    Sirve para salir del switch una vez que se ejecuta un caso. Si no se pone break, el programa seguirá ejecutando los siguientes casos (esto se llama fall-through).

  • default:

    Se ejecuta si ningún case coincide. Es opcional, pero recomendable.

Ejemplo básico


int dia = 3;

switch (dia) {
    case 1:
        System.out.println("Lunes");
        break;
    case 2:
        System.out.println("Martes");
        break;
    case 3:
        System.out.println("Miércoles");
        break;
    case 4:
        System.out.println("Jueves");
        break;
    case 5:
        System.out.println("Viernes");
        break;
    case 6:
        System.out.println("Sábado");
        break;
    case 7:
        System.out.println("Domingo");
        break;
    default:
        System.out.println("Día inválido");
        break;
}


Salida:


Miércoles

Versión moderna (Java 14 en adelante)

Java también permite una versión más corta usando expresiones switch:

  
import java.util.Scanner;

public class Mavenproject2 {
    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        System.out.println("digita el numero del dia 1-7");
        int dia = leer.nextInt();
    String resultado = switch (dia) {
    case 1 -> "Lunes";
    case 2 -> "Martes";
    case 3 -> "Miércoles";
    case 4 -> "Jueves";
    case 5 -> "Viernes";
    case 6 -> "Sábado";
    case 7 -> "Domingo";
    default -> "Día inválido";
};

System.out.println(resultado);

        
        leer.close();
    }
}
  

Cuando Usamos el switch y el if

Situación Estructura Recomendación
Comparar variables con valores fijos 1,2,3,4,5 o 'A', 'B' switch Usar cuando se trabaja con una misma variable que puede tener varios valores exactos.
Comparar condiciones lógicas <, >, ==, >=, != if(){} else if(){} Usar cuando se deben evaluar expresiones lógicas o relacionales.
Evaluar varias opciones exactas switch Recomendado para múltiples casos con valores definidos (como menús u opciones).
Solo dos caminos posibles if(){} else{} Usar cuando solo hay dos resultados posibles: verdadero o falso.

Los switch en POO son para mayormente hacer menus

En los menús, el switch se usa para evaluar la opción que el usuario elige —y esa opción puede venir, por ejemplo, desde un Scanner, desde un método de un objeto, o desde un atributo.


import java.util.Scanner;

public class MenuEjemplo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int opcion;

        System.out.println("=== MENÚ DE OPCIONES ===");
        System.out.println("1. Registrar usuario");
        System.out.println("2. Mostrar usuarios");
        System.out.println("3. Salir");
        System.out.print("Selecciona una opción: ");
        opcion = sc.nextInt();

        switch (opcion) {
            case 1:
                System.out.println("Has elegido registrar un usuario.");
                break;
            case 2:
                System.out.println("Mostrando lista de usuarios...");
                break;
            case 3:
                System.out.println("Saliendo del programa...");
                break;
            default:
                System.out.println("Opción no válida.");
                break;
        }
    }
}

Entonces sí:

  • El switch sirve para controlar menús (uno de sus usos más comunes).
  • Se usa para evaluar la opción que el usuario selecciona.
  • Puede estar dentro de un objeto (como una clase Menu, Tienda, Sistema, etc.).