En el desarrollo de Apps para móviles nos encontraremos muchas situaciones en las que hay tareas que se repetirán varias veces, lo cual resolvemos haciendo uso de los Bucles.
Un Bucle realizará tantas iteraciones como las que le hayamos indicado con un Rango, o bien mientras se cumpla una condición.
Swift hace uso de la Palabra Reservada break para interrumpir la ejecución de un Bucle aunque no se hayan realizado todas las iteraciones previstas.
Supongamos que controlamos la entrada de personas a un teatro cuyo aforo máximo es 500. Por cuestiones organizativas sólo vamos a dejar entrar a las 150 personas que lleguen al recinto. Veamos como resolveríamos esta situación haciendo uso de Bucles y la sentencia break.
var contadorEspectadores = 0
for _ in 1...500{
contadorEspectadores = contadorEspectadores + 1
if contadorEspectadores == 150{
break
}
}
Cuando se cumple la condición contadorEspectadores == 150 se interrumpe la ejecución del Bucle sin necesidad de hacer las 500 iteraciones previstas, continuando la ejecución de nuestro programa por las siguientes líneas de código.
Veamos otro ejemplo. Queremos hacer dos equipos con los alumnos de la clase con el siguiente criterio: Los alumnos irán entrando en una habitación de uno en uno y en cuanto entre la primera alumna que se llame María ya no dejaremos pasar a nadie más. Estos alumnos que han entrado en la habitación serán el primer equipo. El segundo equipo estará formado por el resto de alumnos que quedaron sin entrar en la habitación
var alumnos = ["Pedro", "Ana", "Antonio", "María", "Sergio", "Juan"]
var contadorAlumnos = 0
var indiceArray = 0
print("El primer equipo estará formado por:")
for i in alumnos{
print(i)
if contadorAlumnos == 0 {
indiceArray = 0
}else{
indiceArray = indiceArray + 1
}
contadorAlumnos = contadorAlumnos + 1
if i == "María" {
break
}
}
print("El segundo equipo estará formado por:")
for i in alumnos[(indiceArray+1)...]{
print(i)
}
La Variable contadorAlumnos contabiliza el número de alumnos que entran en la habitación.
La Variable indiceArray indica el índice en el Array del alumno que acaba de entrar en la habitación. Teniendo en cuenta que los índices de los Arrays comienzan por 0, Pedro tendrá el valor indiceArray=0 y María tendrá el valor indiceArray=3.
El primer bucle se interrumpe en cuanto pasa el primer alumno que se llama María
El segundo bucle recorrerá los valores del Array alumnos desde el siguiente índice correspondiente al último alumno que entró en la habitación. Esto lo podemos hacer utilizando un Rango Unilateral. Como el último alumno en entrar en la habitación ha sido María con indiceArray=3, el siguiente alumno del Array tendrá un índice 3+1=4 es decir indiceArray+1