En Swift, las sentencias switch
son una poderosa herramienta para controlar el flujo de tu programa. A diferencia de otros lenguajes de programación, las sentencias switch
en Swift no requieren un break
explícito para salir de un caso, lo que las hace más seguras y menos propensas a errores.
Conceptos Clave
- Sintaxis Básica: La estructura básica de una sentencia
switch
en Swift. - Casos Múltiples: Cómo manejar múltiples valores en un solo caso.
- Rangos y Tuplas: Uso de rangos y tuplas en las sentencias
switch
. - Casos con Condiciones: Uso de condiciones adicionales en los casos.
- Casos Exhaustivos: Asegurarse de que todos los posibles valores sean manejados.
Sintaxis Básica
La sintaxis básica de una sentencia switch
en Swift es la siguiente:
let someValue = 3 switch someValue { case 1: print("El valor es 1") case 2: print("El valor es 2") case 3: print("El valor es 3") default: print("El valor no es 1, 2, ni 3") }
Explicación
someValue
: Es la variable que estamos evaluando.case 1
,case 2
,case 3
: Son los diferentes casos que estamos comparando consomeValue
.default
: Es el caso por defecto que se ejecuta sisomeValue
no coincide con ninguno de los casos anteriores.
Casos Múltiples
Puedes manejar múltiples valores en un solo caso utilizando comas para separarlos:
let someCharacter: Character = "a" switch someCharacter { case "a", "e", "i", "o", "u": print("\(someCharacter) es una vocal") default: print("\(someCharacter) no es una vocal") }
Explicación
case "a", "e", "i", "o", "u"
: Este caso se ejecutará sisomeCharacter
es cualquiera de las vocales.
Rangos y Tuplas
Las sentencias switch
en Swift también pueden manejar rangos y tuplas:
let someNumber = 7 switch someNumber { case 0...5: print("\(someNumber) está entre 0 y 5") case 6...10: print("\(someNumber) está entre 6 y 10") default: print("\(someNumber) está fuera del rango de 0 a 10") }
Explicación
case 0...5
: Este caso se ejecutará sisomeNumber
está en el rango de 0 a 5.case 6...10
: Este caso se ejecutará sisomeNumber
está en el rango de 6 a 10.
Casos con Condiciones
Puedes agregar condiciones adicionales a los casos utilizando la cláusula where
:
let point = (1, -1) switch point { case let (x, y) where x == y: print("El punto (\(x), \(y)) está en la línea x == y") case let (x, y) where x == -y: print("El punto (\(x), \(y)) está en la línea x == -y") default: print("El punto (\(x), \(y)) está en algún otro lugar") }
Explicación
case let (x, y) where x == y
: Este caso se ejecutará six
es igual ay
.case let (x, y) where x == -y
: Este caso se ejecutará six
es igual a-y
.
Casos Exhaustivos
En Swift, las sentencias switch
deben ser exhaustivas, lo que significa que deben cubrir todos los posibles valores del tipo que están evaluando. Si no puedes cubrir todos los casos, debes incluir un caso default
.
let someValue = 10 switch someValue { case 1: print("El valor es 1") case 2: print("El valor es 2") default: print("El valor no es 1 ni 2") }
Explicación
default
: Este caso se ejecutará sisomeValue
no coincide con ninguno de los casos anteriores.
Ejercicio Práctico
Ejercicio
Escribe una sentencia switch
que evalúe una variable grade
y que imprima el rango de calificación correspondiente:
90...100
: "A"80...89
: "B"70...79
: "C"60...69
: "D"0...59
: "F"
Solución
let grade = 85 switch grade { case 90...100: print("A") case 80...89: print("B") case 70...79: print("C") case 60...69: print("D") case 0...59: print("F") default: print("Calificación inválida") }
Explicación
case 90...100
: Este caso se ejecutará sigrade
está en el rango de 90 a 100.case 80...89
: Este caso se ejecutará sigrade
está en el rango de 80 a 89.case 70...79
: Este caso se ejecutará sigrade
está en el rango de 70 a 79.case 60...69
: Este caso se ejecutará sigrade
está en el rango de 60 a 69.case 0...59
: Este caso se ejecutará sigrade
está en el rango de 0 a 59.default
: Este caso se ejecutará sigrade
no coincide con ninguno de los casos anteriores.
Conclusión
Las sentencias switch
en Swift son una herramienta versátil y poderosa para controlar el flujo de tu programa. Asegúrate de que tus sentencias switch
sean exhaustivas y aprovecha las características avanzadas como rangos, tuplas y condiciones adicionales para escribir código más claro y eficiente. Con la práctica, te sentirás más cómodo utilizando switch
en tus proyectos de Swift.
Curso de Programación en Swift
Módulo 1: Introducción a Swift
- Introducción a Swift
- Configuración del Entorno de Desarrollo
- Tu Primer Programa en Swift
- Sintaxis y Estructura Básica
- Variables y Constantes
- Tipos de Datos
Módulo 2: Control de Flujo
Módulo 3: Funciones y Closures
- Definición y Llamada de Funciones
- Parámetros de Función y Valores de Retorno
- Closures
- Funciones de Orden Superior
Módulo 4: Programación Orientada a Objetos
Módulo 5: Swift Avanzado
Módulo 6: Swift y Desarrollo de iOS
- Introducción al Desarrollo de iOS
- Fundamentos de UIKit
- Storyboards y Interface Builder
- Redes en Swift
- Core Data
- Fundamentos de SwiftUI