Controles de Flujo en Swift

Qué es un control de flujo?

Los controles de flujo en Swift no son muy distintos de otros lenguajes. Un control de flujo en la programación es determinar el orden en que se ejecutaran las instrucciones. Sin un control de flujo el código se ejecutaría de manera lineal, una tras otra, y si esto ocurriera seria muy malo para el programador xD. Un control de flujo te permite ir a un lado o al otro, mandar un mail o no, por ejemplo.

Existen varios controles de flujo, entro los que incluye swift están:

  1. if else elseif
  2. switch
  3. for
  4. while
  5. repeat while

Cuales son (y como se usan) los controles de flujo en Swift?

if else

Este control de flujo en particular, a mi parecer, es el más usado de todos. Este control de flujo te permite evaluar “si algo ocurre o no“.

Su funcionamiento es bastante sencillo de entender, o la condición es verdadera o no la es.

Operador ternario

El operador ternario son básicamente un control de flujo en una sola linea de código.

switch

El control de flujo switch se permite ingresar a una sección del código según el valor de la variable que se le de.

El concepto de este control de flujo es basicamente “busca la sección de x y ejecuta el código, si la sección no existe, ejecuta el código por defecto”.

Acerca del case de varias opciones, en la mayoría de los lenguajes de programación tendrías que poner 1 case por cada opción, aun que el resultado fuera el mismo.

Los controles de flujo en Swift son algo más poderoso. En este control de flujo se permiten poner más de una opción en el case y también usar los operadores de rango.

Operador de rango

El operador de rango te permite justamente eso, diferir entre un rango, un rango de strings o números. El concepto es muy sencillo y lo explicare con el siguiente código.

La variable edad, que es igual a 20, es procesada por el control de flujo switch, si el case que va encontrando no es igual al valor de la variable que se esta procesando pasa al siguiente case.

Por tanto, un control de flujo switch con un operador de rango sería así…

for

Entre los controles de flujo en Swift se encuentra el control de flujo for permite hacer un ciclo siempre que la condición que se le da sea verdadera. El comando for acepta el operador de rango, puede recorrer un conjunto de datos (en un arreglo), diccionario o estructura.

Llegado este punto me gustaría hablar sobre los operadores anónimos.

Operadores anónimos

El operador anónimo nos sirve para cuando necesitamos una variable que no vamos a ocupar, es, digamos, un comodín. El siguiente ejemplo ilustra su funcionamiento.

for recorriendo un rango y usando un operador anónimo

El Swift, el ciclo for necesita asignar el valor de lo que recorre a una variable y si esta variable no es requerida, se puede usar “_” como el operador anónimo.

El siguiente es otro ejemplo que te muestra como seria si no ocupara el operador anónimo.

for recorriendo un arreglo

while

El control de flujo while permite ejecutar código “mientras” la condición no cambie. Es decir, si tenemos un while que lee una variable que es incrementada cada vez que se ejecuta el bloque del código para decidir hasta cuando ejecutarse, en el momento que la variable llegue a ese valor, se dejara de ejecutar. Veamos el ejemplo:

Si ejecutamos el código en el playground veremos que el bloque de código dentro de while es ejecutado 100 veces. Si quieres tener un poco mas ordenado tu código existe otra manera de usar el while. (Véase siguiente titulo “repeat while“)

repeat-while

Este control de flujo es exactamente igual al anterior (while) con la única diferencia de su sintaxis. Este control de flujo seria lo mismo a lo que es en otros lenguajes do-while.

A mi en lo particular me gusta estar la sintaxis anterior debido a que Apple le puso mucha atención al como hacer de los controles de flujo en Swift mas ergonómicos y prácticos, y repeat-while y switch son un buen ejemplo.


Hasta aquí con los controles de flujo en Swift. Espero que te haya sido de mucha ayuda, si tienes dudas o algún comentario escribelo en la sección de comentarios. Gracias! 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Imagen CAPTCHA