¿Qué es y para qué sirve switch en Java?

| Última modificación: 12 de febrero de 2025 | Tiempo de Lectura: 3 minutos

Cuando trabajas con múltiples condiciones en Java, la estructura if-else puede volverse complicada y difícil de leer. Es aquí donde entra en juego switch en Java, una estructura de control que permite ejecutar diferentes bloques de código según el valor de una variable. En esta guía, descubrirás qué es, cómo funciona y cuándo usarlo para optimizar tu código.

¿Qué es switch en Java?

El switch en Java es una estructura de control que evalúa el valor de una variable y ejecuta un bloque de código dependiendo de ese valor. Se usa cuando se tienen múltiples opciones y se desea una solución más organizada que varios if-else.

Imagina que estás diseñando un sistema de semáforo. Dependiendo del color de la luz (rojo, amarillo o verde), el comportamiento será distinto. En lugar de usar múltiples if-else, puedes manejarlo de manera más clara con switch.

La sintaxis es:

switch (variable) {
case valor1:
// Código a ejecutar
break;
case valor2:
// Código a ejecutar
break;
default:
// Código si no se cumple ningún caso
}

Cada case representa un posible valor de la variable. Cuando se encuentra un case coincidente, se ejecuta su bloque de código. La palabra clave break evita que se sigan ejecutando los demás casos.

switch en java

¿Para qué sirve switch en Java?

El uso de switch tiene varias ventajas:

  • Mejora la legibilidad del código: Permite organizar de manera clara múltiples condiciones sin anidar if-else.
  • Facilita la depuración: Es más fácil identificar errores en un switch bien estructurado que en una serie de if-else.
  • Optimiza el rendimiento: Java traduce switch en instrucciones eficientes, lo que puede mejorar el tiempo de ejecución en ciertos casos.

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Se utiliza en escenarios como:

  • Menús de aplicaciones.
  • Asignación de valores según opciones predefinidas.
  • Conversión de datos según condiciones específicas.

Ejemplos de uso de switch en Java

  • Usando switch en Java con números enteros:
int numero = 2;

switch (numero) {
case 1:
System.out.println("El número es uno.");
break;
case 2:
System.out.println("El número es dos.");
break;
default:
System.out.println("El número no es ni uno ni dos.");
}

Si numero es 2, se imprimirá «El número es dos.» Si fuera otro valor, se ejecutaría el default.

  • Switch en Java sin breaks: Si omites break, el programa ejecutará todos los casos siguientes hasta encontrar uno con break o llegar al final.
int valor = 3;

switch (valor) {
case 1:
System.out.println("Uno");
case 2:
System.out.println("Dos");
case 3:
System.out.println("Tres");
case 4:
System.out.println("Cuatro");
break;
}

Si valor es 3, el programa imprimirá:

Tres
Cuatro

Este comportamiento puede ser útil en ciertas situaciones, pero generalmente se recomienda usar break para evitar ejecuciones no deseadas.

  • Usando switch con cadenas de texto: Desde Java 7, se pueden usar String en switch. Esto es útil para manejar opciones basadas en palabras clave.
String dia = "Lunes";

switch (dia.toLowerCase()) {
case "lunes":
System.out.println("Inicio de semana");
break;
case "viernes":
System.out.println("Inicio del fin de semana");
break;
case "sábado":
case "domingo":
System.out.println("Es fin de semana");
break;
default:
System.out.println("Día no reconocido");
}

El toLowerCase() garantiza que la comparación no sea afectada por mayúsculas o minúsculas.

  • Switch en un menú interactivo:
int opcion = 1;

switch (opcion) {
    case 1:
        System.out.println("Iniciar juego");
        break;
    case 2:
        System.out.println("Cargar partida");
        break;
    case 3:
        System.out.println("Salir");
        break;
    default:
        System.out.println("Opción inválida");
}

Este es un caso común en aplicaciones donde los usuarios seleccionan una opción de un menú.

Diferencias entre switch y if-else

Característicaswitchif-else
Número de condicionesRecomendado para múltiples valores fijosÚtil para condiciones complejas
Tipos de datosFunciona con int, char, String, enumCompatible con todos los tipos
LegibilidadMás claro para múltiples valoresPuede volverse complejo
EficienciaMás rápido en algunos casosMás flexible

Si las condiciones son simples y están limitadas a valores específicos, switch es una mejor opción. Para comparaciones complejas, if-else es más adecuado.

Consideraciones al usar switch en Java

  • No acepta rangos: No puedes usar case > 10, pero puedes manejarlo con if-else dentro del switch.
  • Funciona mejor con valores constantes: No se pueden evaluar expresiones booleanas o comparaciones.
  • Siempre usar default: Es una buena práctica incluir default para manejar valores inesperados.

Si quieres aprender a dominar Java y desarrollar software profesionalmente, en KeepCoding te preparamos para ello. Nuestro Bootcamp de Desarrollo en Java te enseñará desde los fundamentos hasta técnicas avanzadas, permitiéndote acceder a oportunidades en una industria con alta demanda y excelentes salarios. ¿Listo para transformar tu carrera? ¡Inscríbete ahora y da el primer paso!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado