Swift while y repetir while Loop (con ejemplos)

En este artículo, aprenderá a crear bucles while y repetir … while en la programación Swift.

En el artículo anterior, aprendimos sobre el bucle for-in para ejecutar un conjunto de tareas durante un cierto número de veces. En este artículo, aprenderá a usar whiley repeat… whilecomo alternativa al bucle for-in cuando se desconoce el número de iteraciones.

Un ciclo while ejecuta un conjunto de declaraciones hasta que se convierte en una condición false. Estos tipos de bucles se utilizan mejor cuando se desconoce el número de iteraciones antes de que comience la primera. Swift proporciona dos tipos de bucles while:

1. Swift while Loop

Este bucle evalúa su condición al comienzo de cada pasada a través del bucle.

La sintaxis de while loop es:

 while (TestExpression) ( // statements )

¿Cómo funciona el bucle while?

El TestExpressiones una expresión booleana.

Si TestExpressionse evalúa como true,

  • Las declaraciones dentro del ciclo while se ejecutan.
  • y TestExpressionse evalúa de nuevo.

Este proceso continúa hasta que TestExpressionse evalúa como false. Si se TestExpressionevalúa como false, while finaliza el ciclo.

Diagrama de flujo de while Loop

Ejemplo 1: bucle while

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")

Cuando ejecute el programa, la salida será:

 Has pasado el nivel 0 Has pasado el nivel 1 Has pasado el nivel 2 Has pasado el nivel 3 Has pasado el nivel 4 Has pasado el nivel 5 fuera del ciclo while 

En el programa anterior, la variable currentLevel y finalLevel se inicializa en 0 y la constante gameCompleted se inicializa en true.

En cada iteración del ciclo while, verifica la condición currentLevel <= finalLevel. Si la condición regresa true, las declaraciones dentro del ciclo while se ejecutan; de lo contrario, el ciclo termina.

Pasos de ejecución
Iteración Condición (currentLevel <= finalLevel) Salida
1 0 <= 5 (verdadero) Has pasado el nivel 0
2 1 <= 5 (verdadero) Has pasado el nivel 1
3 2 <= 5 (verdadero) Has pasado el nivel 2
4 3 <= 5 (verdadero) Has pasado el nivel 3
5 4 <= 5 (verdadero) Has pasado el nivel 4
6 5 <= 5 (verdadero) Has pasado el nivel 5
7 6 <= 5 (falso) fuera del bucle while

2. Repetir while Loop

Este bucle evalúa su condición al final de cada pasada a través del bucle. La repetición … while es similar al bucle while con una diferencia clave. El cuerpo del ciclo repeat … while se ejecuta una vez antes de comprobar la expresión de prueba.

La sintaxis de repeat … while loop es:

 repeat ( // statements… ) while (testExpression)

¿Cómo funciona repetir… mientras funciona el bucle?

El cuerpo de repeat … while se ejecuta una vez (antes de comprobar la expresión de prueba). Solo entonces, se marca testExpression.

Si testExpression se evalúa como verdadero, las declaraciones dentro del cuerpo del bucle se ejecutan y testExpression se evalúa nuevamente. Este proceso continúa hasta que testExpression se evalúa como false.

Cuando testExpression es false, el ciclo repeat … while termina.

Diagrama de flujo de repetición … while Loop

Ejemplo 2: repetir mientras se realiza un bucle

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop") 

Cuando ejecute el programa, la salida será:

 Pasó el nivel 0 Pasó el nivel 1 Pasó el nivel 2 Pasó el nivel 3 Pasó el nivel 4 Pasó el nivel 5 fuera del ciclo de repetición while 

En el ejemplo anterior, por primera vez se ejecutan las sentencias dentro del bucle. Y para la próxima iteración, verifica la condición currentLevel <= finalLevel.

Si la condición regresa true, las declaraciones dentro del ciclo while se ejecutan; de lo contrario, el ciclo termina.

Pasos de ejecución
Iteración Condición (currentLevel <= finalLevel) Salida
1 0 <= 5 (verdadero) Has pasado el nivel 0
2 1 <= 5 (verdadero) Has pasado el nivel 1
3 2 <= 5 (verdadero) Has pasado el nivel 2
4 3 <= 5 (verdadero) Has pasado el nivel 3
5 4 <= 5 (verdadero) Has pasado el nivel 4
6 5 <= 5 (verdadero) Has pasado el nivel 5
7 6 <= 5 (falso) fuera de repetición while loop

Aunque ambos whiley repeat whilebucle tienen los mismos pasos de ejecución, la condición currentLevel <= finalLevel de repeat whilebucle se ejecuta sólo después de ejecutar las instrucciones en su interior.

Pero en while, la condición se verifica al principio antes de ejecutar las declaraciones que contiene.

3. Bucle while infinito

Si la expresión de prueba nunca se evalúa false, el cuerpo de whiley el repeat… whilebucle se ejecuta un número infinito de veces.

Ejemplo 3: Bucle while infinito

 while (true) ( print("Hello, World!") )
 repeat ( print("Hello, World!") ) while (true)

Cuando ejecute el programa, la salida será:

¡Hola Mundo! ¡Hola Mundo!…

Cuando ejecuta el programa, ambos bucles ejecutan la print("Hello, World!")instrucción un número infinito de veces. Entonces, puede ver la salida continua Hello, World! en la consola.

Articulos interesantes...