Menu
Coddy logo textTech

Expresión Switch

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 36 de 59.

La expresión switch es una característica que te permite escribir declaraciones switch más concisas y devolver valores directamente. Veamos cómo funciona.

Crea una expresión switch básica que devuelva un valor:

int number = 1;
String message = switch(number) {
   case 1 -> "One";
   case 2 -> "Two";
   default -> "Other";
};

Después de ejecutar el código anterior, la variable message contiene:

"One"

También puedes manejar múltiples casos juntos:

int day = 2;
String type = switch(day) {
   case 1, 2, 3, 4, 5 -> "Weekday";
   case 6, 7 -> "Weekend";
   default -> "Invalid day";
};

Después de ejecutar el código anterior, la variable type contiene:

"Weekday"

challenge icon

Desafío

Fácil

Crea un método llamado getDayType que toma dos argumentos:

  1. Un entero (day) que representa un día de la semana (1-7)
  2. Un booleano (abbreviated) que determina el formato de retorno

El método debe usar una expresión switch para retornar el tipo de día:

  • Para los días 1-5 (Lunes a Viernes): retornar "WORKDAY" si no está abreviado, o "WKD" si está abreviado
  • Para los días 6-7 (Sábado y Domingo): retornar "WEEKEND" si no está abreviado, o "WKND" si está abreviado
  • Para cualquier otro número: retornar "INVALID" si no está abreviado, o "INV" si está abreviado

Hoja de referencia

Las expresiones switch permiten escribir declaraciones switch concisas que devuelven valores directamente usando la sintaxis de flecha (->):

int number = 1;
String message = switch(number) {
   case 1 -> "One";
   case 2 -> "Two";
   default -> "Other";
};

Puedes manejar múltiples casos juntos separándolos con comas:

int day = 2;
String type = switch(day) {
   case 1, 2, 3, 4, 5 -> "Weekday";
   case 6, 7 -> "Weekend";
   default -> "Invalid day";
};

Pruébalo tú mismo

import java.util.Scanner;

public class Main {
    public static String getDayType(int day, boolean abbreviated) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int day = Integer.parseInt(scanner.nextLine());
        boolean abbreviated = Boolean.parseBoolean(scanner.nextLine());
        
        System.out.println(getDayType(day, abbreviated));
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo