Sentencia Switch
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 29 de 86.
Cuando estás comparando un único valor con muchas coincidencias posibles, la sentencia switch ofrece una alternativa más limpia a las largas cadenas de else if. Es especialmente útil cuando tienes múltiples casos distintos que manejar.
let day = "Monday"
switch day {
case "Monday":
print("Start of the week")
case "Friday":
print("Almost weekend!")
case "Saturday", "Sunday":
print("Weekend!")
default:
print("Regular day")
}Swift compara el valor después de switch con cada case. Cuando encuentra una coincidencia, ejecuta el código de ese caso. Observa cómo puedes combinar múltiples valores en un solo caso usando comas.
El caso default maneja cualquier valor que no coincida con los otros casos — es obligatorio cuando tus casos no cubren todos los valores posibles. A diferencia de otros lenguajes, el switch de Swift no pasa automáticamente al siguiente caso, por lo que no necesitas sentencias break.
let grade = "B"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
case "C":
print("Fair")
default:
print("Needs improvement")
}Desafío
FácilEscribe una función getSeasonActivity que reciba season y devuelva una actividad recomendada para esa estación.
Usa una sentencia switch para que coincida con la estación y devuelva la actividad apropiada.
Casos:
"Spring"- devuelve"Go hiking""Summer"- devuelve"Go swimming""Fall","Autumn"- devuelve"Go apple picking"(ambos deben devolver la misma actividad)"Winter"- devuelve"Go skiing"- Cualquier otro valor - devuelve
"Stay home"
Parámetros:
season(String): El nombre de la estación
Devuelve: La actividad recomendada como un String
Hoja de referencia
La sentencia switch proporciona una alternativa más limpia a múltiples sentencias else if cuando se comprueba un único valor frente a muchas coincidencias posibles.
Sintaxis básica:
let day = "Monday"
switch day {
case "Monday":
print("Start of the week")
case "Friday":
print("Almost weekend!")
case "Saturday", "Sunday":
print("Weekend!")
default:
print("Regular day")
}Puntos clave:
- Swift compara el valor después de
switchcon cadacase - Se pueden combinar múltiples valores en un solo caso usando comas
- El caso
defaultmaneja los valores que no coinciden con otros casos y es obligatorio cuando los casos no cubren todos los valores posibles - El switch de Swift no pasa al siguiente caso automáticamente, por lo que no se necesitan sentencias
break
Ejemplo con valores de retorno:
let grade = "B"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
case "C":
print("Fair")
default:
print("Needs improvement")
}Pruébalo tú mismo
func getSeasonActivity(season: String) -> String {
// Escribe el código aquí
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica