Programación de Apps iOS para iPhone con Swift y SwiftUI - LaFactoríaApple

Rangos

Recorrer un Intervalo de Valores es una de las situaciones más frecuentes a la hora de programar Apps para iPhone o cualquier otro dispositivo del ecosistema Apple. Swift utiliza los Rangos para proporcionarnos una sintaxis simplificada a la hora de definir estos Intervalos.

Veamos los distintos tipos de Rangos:

Rangos cerrados

Son aquellos Intervalos bilaterales que van desde un valor inicial a uno final, ambos incluidos. Se recorrerán todos los valores incluidos en el Intervalo.

Para definir este tipo de Rango, separaremos el valor inicial del final mediante ...

Por ejemplo:

1...5
// Este rango incluye los valores: 1, 2, 3, 4, 5

Una condición que hay que tener en cuenta es que el valor final debe ser mayor que el inicial, de lo contrario obtendremos el correspondiente mensaje de error.

Veamos una aplicación de este tipo de Rangos en un bucle for-in:

for i in 1...3{
    print(i)
}

Nuestro bucle se repite tres veces recorriendo los valores del 1 al 3, ambos inclusive.

Podríamos asignar los valores inicial y final mediante el uso de Variables:

var valorInicial = 1
var valorFinal = 3

for i in valorInicial...valorFinal{
    print(i)
}

Rangos semiabiertos

Son aquellos Intervalos bilaterales que van desde un valor inicial al valor justamente anterior del final.

Para definir este tipo de Rango, separaremos el valor inicial del final mediante ..<

for i in 1..<4{
    print(i)
}

Rangos unilaterales

Son aquellos Intervalos en los sólo indicaremos el valor inicial o el final, pero no ambos como hacíamos en los dos tipos de Rangos anteriores.

Definimos este tipo de Rango mediante dos posibles sintaxis: ...valorFinal o valorInicial...

Vamos a ver un ejemplo con el bucle for-in y un Array para entender este tipo de Rango:

var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio"]

for i in meses[...3]{
    print(i)
}

for i in meses[2...]{
    print(i)
}

En el primer bucle se recorren los elementos del Array desde el primero hasta el que tiene el índice de posición 3, teniendo en cuenta que en los Arrays el primero de los elementos tiene índice de posición 0.

En el segundo bucle se recorren los elementos del Array desde el que tiene el índice de posición 2 hasta el último elemento.

Rangos unilaterales semiabiertos

Son aquellos Intervalos unilaterales en los que llegaremos hasta el valor justamente anterior al valor final que indiquemos.

Definimos este tipo de Rango mediante la sintaxis: ..< valorFinal

var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio"]

for i in meses[..<3]{
    print(i)
}

Más en esta Sección

  • Cómo interrumpir la ejecución de un Bucle: break

  • Bucles for-in