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"
Desafío
FácilCrea un método llamado getDayType que toma dos argumentos:
- Un entero (
day) que representa un día de la semana (1-7) - 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));
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras