Neste artigo, você aprenderá a criar while e repetir … while loops na programação Swift.
No artigo anterior, aprendemos sobre o loop for-in para executar um conjunto de tarefas por um determinado número de vezes. Neste artigo, você aprenderá a usar while
e repeat… while
como alternativa ao loop for-in quando o número de iterações for desconhecido.
Um loop while executa um conjunto de instruções até que uma condição se torne false
. Esses tipos de loops são mais usados quando o número de iterações não é conhecido antes do início da primeira iteração. O Swift oferece dois tipos de loops while:
1. Swift while Loop
Este loop avalia sua condição no início de cada passagem pelo loop.
A sintaxe do loop while é:
while (TestExpression) ( // statements )
Como funciona o loop while?
O TestExpression
é uma expressão booleana.
Se o TestExpression
for avaliado para true
,
- instruções dentro do loop while são executadas.
- e o
TestExpression
é avaliado novamente.
Esse processo continua até que TestExpression
seja avaliado como false
. Se o TestExpression
avaliar para false
, o loop while é encerrado.
Fluxograma do loop while
Exemplo 1: While Loop
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")
Quando você executa o programa, a saída será:
Você passou no nível 0 Você passou no nível 1 Você passou no nível 2 Você passou no nível 3 Você passou no nível 4 Você passou no nível 5 fora do loop while
No programa acima, a variável currentLevel e finalLevel é inicializada em 0 e a constante gameCompleted é inicializada em true
.
Em cada iteração do loop while, ele verifica a condição currentLevel <= finalLevel
. Se a condição retornar true
, as instruções dentro do loop while são executadas, caso contrário, o loop termina.
Iteração | Condição (currentLevel <= finalLevel) | Resultado |
---|---|---|
1 | 0 <= 5 (verdadeiro) | Você passou no nível 0 |
2 | 1 <= 5 (verdadeiro) | Você passou no nível 1 |
3 | 2 <= 5 (verdadeiro) | Você passou no nível 2 |
4 | 3 <= 5 (verdadeiro) | Você passou no nível 3 |
5 | 4 <= 5 (verdadeiro) | Você passou no nível 4 |
6 | 5 <= 5 (verdadeiro) | Você passou no nível 5 |
7 | 6 <= 5 (falso) | fora do loop while |
2. Repita durante o Loop
Este loop avalia sua condição no final de cada passagem pelo loop. O loop repeat… while é semelhante ao loop while com uma diferença fundamental. O corpo de repeat… while loop é executado uma vez antes de a expressão de teste ser verificada.
A sintaxe de repeat … while loop é:
repeat ( // statements… ) while (testExpression)
Como repetir … enquanto o loop funciona?
O corpo de repeat… while loop é executado uma vez (antes de verificar a expressão de teste). Só então, testExpression é verificado.
Se testExpression for avaliado como verdadeiro, as instruções dentro do corpo do loop serão executadas e testExpression será avaliado novamente. Esse processo continua até que testExpression seja avaliado como false
.
Quando testExpression é false
, o loop repeat… while termina.
Fluxograma de repetição … enquanto Loop
Exemplo 2: Repetir durante o Loop
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")
Quando você executa o programa, a saída será:
Você passou no nível 0 Você passou no nível 1 Você passou no nível 2 Você passou no nível 3 Você passou no nível 4 Você passou no nível 5 fora da repetição durante o ciclo
No exemplo acima, pela primeira vez, as instruções dentro do loop são executadas. E para a próxima iteração, ele verifica a condição currentLevel <= finalLevel
.
Se a condição retornar true
, as instruções dentro do loop while são executadas, caso contrário, o loop termina.
Iteração | Condição (currentLevel <= finalLevel) | Resultado |
---|---|---|
1 | 0 <= 5 (verdadeiro) | Você passou no nível 0 |
2 | 1 <= 5 (verdadeiro) | Você passou no nível 1 |
3 | 2 <= 5 (verdadeiro) | Você passou no nível 2 |
4 | 3 <= 5 (verdadeiro) | Você passou no nível 3 |
5 | 4 <= 5 (verdadeiro) | Você passou no nível 4 |
6 | 5 <= 5 (verdadeiro) | Você passou no nível 5 |
7 | 6 <= 5 (falso) | fora da repetição while loop |
Embora while
e o repeat while
loop tenham as mesmas etapas de execução, a condição currentLevel <= finalLevel
no repeat while
loop é executada somente após a execução das instruções dentro dele.
Mas em while
, a condição é verificada no início, antes de executar as instruções dentro dela.
3. Infinito while Loop
Se a expressão de teste nunca for avaliada como false
, o corpo de while
e o repeat… while
loop será executado um número infinito de vezes.
Exemplo 3: Infinito while Loop
while (true) ( print("Hello, World!") )
repeat ( print("Hello, World!") ) while (true)
Quando você executa o programa, a saída será:
Olá Mundo! Olá Mundo!…
Quando você executa o programa, os dois loops executam a print("Hello, World!")
instrução por um número infinito de vezes. Portanto, você pode ver a saída contínua Hello, World! no console.