Básico 03 – Control de Flujo

Las siguientes declaraciones nos ayudan a controlar el flujo de nuestras aplicaciones, ya que si bien existe un uso avanzado para cada uno, el objetivo de esta publicación es comenzar a entender estas declaraciones desde una perspectiva de principiante para posteriormente profundizar en el uso avanzado a través de diferentes casos y ejemplos más complejos.

Podemos dividir estas declaraciones en dos tipos: ciclos y declaraciones condicionales. Los ciclos tienen como función principal generar ciclos o repeticiones una cantidad de veces determinada o limitada.  Las declaraciones condicionales son aquellas preguntas que en caso de responderse de manera satisfactoria ejecutarán una declaración para cumplir con su objetivo específico, es decir están sujetas a que se cumpla cierta condición para ejecutar su objetivo.

Ambos son utilizados en diversas situaciones, pero de manera natural irás entendiendo su uso dependiendo del escenario, lo más importante es aprender cómo se deben declarar y la manera en la que se comportan según los ejemplos que verás a continuación.

Ciclos

Ciclo For-in

Genera un ciclo basado en una secuencia, dicha secuencia puede contener elementos de un arreglo, rangos de números o  cantidad de caracteres en una cadena de texto, observemos el siguiente ejemplo:

let personajes = ["Naruto", "Kakashi", "Hinata", "Itachi", "Sakura"]

for personaje in personajes {
   print("Personaje: \(personaje)")
}

// Lo anterior da como resultado:

// Personaje: Naruto
// Personaje: Kakashi
// Personaje: Hinata
// Personaje: Itachi
// Personaje: Sakura

También se puede crear un ciclo For basado en un rango:

for index in 1...10 {
   print(" 5 X \(index) = \(index * 5)")
}

// 5 X 1 = 5
// 5 X 2 = 10
// 5 X 3 = 15
// 5 X 4 = 20
// 5 X 5 = 25
// 5 X 6 = 30
// 5 X 7 = 35
// 5 X 8 = 40
// 5 X 9 = 45
// 5 X 10 = 50

Ciclo While

Este ciclo comienza evaluando una condición y mientras esta se cumpla se ejecutaran las acciones del ciclo y seguirá hasta que la condición cambie. A continuación un ejemplo:

var edad = 1
while edad < 18 {
   edad += 1
}

Ciclo Repeat-While

Este ciclo es una variante del Ciclo While, su diferencia principal consiste en que primero ejecuta un fragmento de código antes de evaluar si debe continuar o no, aquí un ejemplo:

var incrementaPoder = 0
repeat {
    incrementaPoder += 100
} while incrementaPoder < 1000

Declaraciones Condicionales

if

En su forma más simple evalúa una condición y en caso de ser verdadera ejecuta una serie de declaraciones, veamos un ejemplo:

var juegoTerminado = 100
if juegoTerminado == 100 {
    print("Haz ganado el juego!!!")
}

if else

Este caso ofrece la opción de ejecutar algunas declaraciones cuando la condición inicial no se cumpla, entonces lo usarías en escenarios donde debas ofrecer solución para los dos estados de la condición, veamos un ejemplo:

var tieneCuenta = true
if tieneCuenta == true {
   print("El usuario tiene una cuenta")
} else {
   print("El usuario no tiene una cuenta")
}

La condición anterior se puede escribir utilizando el operador ternario y quedaría de la siguiente manera:

var tieneCuenta = true
tieneCuenta ? print("El usuario tiene una cuenta") : print("El usuario no tiene una cuenta")  

Si quieres revisar más acerca de este operador puedes revisar la siguiente publicación.

Switch

Considera un valor inicial que se verá evaluado con una serie de posibles patrones que pueden coincidir con el valor inicial y si es así se ejecutaran una serie de declaraciones al respecto, el flujo puede ser interrumpido o puede continuar hasta terminar todas las evaluaciones que establezcas en el Switch, en seguida está un ejemplo:

var nombrePais = "Mexico"
switch nombrePais {
case "Mexico":
    print("Es un pais latino ")
case "Estados Unidos":
    print("Es un país de América del Norte")
case "España":
    print("Es un país Europeo")
default:
    print("Es un país de un continente desconocido.")
}

Es posible evaluar múltiples valores en un mismo caso que espere la misma respuesta, retomando el ejemplo anterior, veamos el siguiente ejemplo:

var nombrePais = "Alemania"
switch nombrePais {
case "Mexico", "Brazil", "Nicaragua":
    print("Es un pais latino ")
case "Estados Unidos", "Canada":
    print("Es un país de América del Norte")
case "España", "Alemania", "Italia":
    print("Es un país Europeo")
default:
    print("Es un país de un continente desconocido.")
}

Para más información: Swift.org

Deja un comentario