Aprende a Programar Apps para iPhone con  Swift, SwiftUI y UIKit - lafactoriaapple

Uso de los Rangos en las Instrucciones switch

Swift pone a nuestra disposición los Rangos para hacer nuestro Desarrollo de Apps para iPhone con un Código más eficiente y sencillo. En los case de las Instrucciones switch también podemos hacer uso de los Rangos cuando queramos evaluar varios valores en los distintos case.

var numeroMes = 3
var estacion = ""

switch numeroMes {
case 1...3:
    estacion = "Invierno"
case 4...6:
    estacion = "Primavera"
case 7...9:
    estacion = "Verano"
case 10...12:
    estacion = "Otoño"        

default:
    estacion = "Ese valor no corresponde a ninguna Estación del Año"

}

print(estacion)

Ya vimos en un artículo anterior que no se deben repetir los valores en los case:

var numeroMes = 3
var estacion = ""

switch numeroMes {
case 1:
    estacion = "Invierno"
case 2:
    estacion = "Invierno"
case 3:
    estacion = "Invierno"
case 3:
    estacion = "Primavera"
case 4:
    estacion = "Primavera"    
default:
    estacion = "No hay ninguna correspondencia para ese valor"

}

print(estacion)

En este ejemplo el valor 3 se evalúa en dos case. Xcode nos mostrará una Advertencia, pero no impide que el programa siga ejecutándose. En esta circunstancia se ejecutará el primero de los case que incluya el valor duplicado y que cumpla la condición.

En caso de utilizar Rangos cuyos valores se repitan en varios case Xcode no mostrará la correspondiente Advertencia (entendemos que es un Bug del IDE). Igualmente se ejecutará el primero de los case que incluya el valor duplicado y que cumpla la condición.

var numeroMes = 3
var estacion = ""

switch numeroMes {
case 1...3:
    estacion = "Invierno"
case 3...6:
    estacion = "Primavera"
case 7...9:
    estacion = "Verano"
case 10...12:
    estacion = "Otoño"        

default:
    estacion = "Ese valor no corresponde a ninguna Estación del Año"

}

print(estacion)

Podemos utilizar otro tipo de Rangos, como los semicerrados:

var numeroMes = 9
var estacion = ""

switch numeroMes {
case 1..<4:
    estacion = "Invierno"
case 4..<7:
    estacion = "Primavera"
case 7..<10:
    estacion = "Verano"
case 10...12:
    estacion = "Otoño"        

default:
    estacion = "Ese valor no corresponde a ninguna Estación del Año"

}

print(estacion)

Ficheros Adjuntos

Más en esta Sección