Control Flow: FOR, WHILE, IF, GUARD, SWITCH en Swift en Español
Cuando programas en Swift acabas usando if, guard, switch, for, while, etc para crear flows de lógica dentro de tu aplicación. Depende en qué situaciones utilizarás uno o otro, es por eso que entiendas bien sus diferencias.
Tabla de contenido
Swift nos provee de varios controles de flujo. Podemos usar while, if, guard, switch, for, etc
Son útiles para añadir lógica en nuestros programas, por ejemplo, si A > B quiero que se aplique la lógica X (if, guard). Para distintos estados quiero que me ejecutes una instrucción (switch), o mientras tenga la 'condición X' quiero que ejecutes otra lógica (while, for), etc.
Bucles For-In en Swift
Se usa for-in para iterar dentro de una secuencia, como por ejemplo los items de un array, caracteres en un string, etc
También puedes iterar dentro de un dictionary de la siguiente manera:
Y también podemos iterar rangos de valores, si queremos iterar del 1 al 5 incluido podemos usar el siguiente snippet de código:
Bucles While en Swift
Cuando usamos un while, dentro de su scope ocurre cierta lógica y hasta que la condición del while no es false seguimos iterando dentro de él.
En este caso hemos printado el valor de count 10 veces, y como 10 < 10 es false, se ha cerrado el bucle.
Sentencias condicionales en Swift
If en Swift
Usamos if para ejecutar condiciones muy simples, si se cumple la condición entramos dentro de su scope y ejecutamos cierta lógica.
Una forma de entender que es un scope es desde que se abre una llave curva hasta que se cierra. Ejemplo: clases, structs, funciones, dentro de ifs, etc.
if { scope }
for { scope }
Si la condición no se cumple y queremos ejecutar otra lógica, podemos añadir un else
También y como en otros lenguajes de programación podemos añadir varios else if
Guard en Swift
Los guard son un early return, nos ayudan a salir del scope cuando no se cumple una condición. Son muy parecidos a un if.
Otra funcionalidad de los guard es que podemos extraer el valor de un opcional. Es decir, lo mismo que hacíamos con un if let x = opcional { }
Switch en Swift
Los switch son realmente útiles cuando tenemos un valor y lo comparamos con distintos casos. Si se cumple la condición se ejecuta esa lógica, el funcionamiento es parecido a de los if pero mucho más potente.
Tenemos que añadir un default porque en caso de no entrar en ningún case entraría en éste último.
Podemos vitaminar nuestro switch añadiendo where
En este caso debe cumplir la condición del where para poder entrar dentro del primer case. Podemos coger el valor exacto de x y manipularlo dentro del scope como queramos.
Los switch son muy útiles cuando usamos enums, imagina que tenemos un enum que representa los distintos estados de un mensaje de whatsapp:
Para aplicar una lógica para cada estado, podemos usar un switch:
En este caso no necesitamos añadir el default ya que estamos cubriendo todos los casos del enum.