Back
Close

Swift - Loops

oieteus
2,112 views

Loops

Loops são declarações que permitem a execução de um bloco de código de forma contínua enquanto uma condição é satisfeita. Eles também permitem você iterar sobre os elementos de uma coleção. Vamos ver, por exemplo, como usar uma declaração for-in para iterar sobre os elementos de uma coleção.

Aqui veremos sobre:

  • for-in
  • while
  • repeat-while

for-in

Swift não oferece aquele for padrão baseado em linguagens de programação derivadas da linguagem C, ao invés deste for padrão nós temos o for-in. O for-in é uma declaração usada para executar um bloco de código para cada item de um intervalo, coleção ou sequência.

Usando for-in

O for-in itera sobre elementos de uma coleção de itens ou um intervalo de números, e executa um bloco de código para cada item da coleção ou intervalo. O formato da declaração de um for-in é a seguinte:

for variable in collection/range {
    block of code
}

Mas o que significa variable e collection/range usadas no código acima?

  • variable: Esta variável é atualizada cada vez que o loop executa e armazena o valor atual do item da coleção ou do intervalo
  • collection/range: Esta é a coleção ou intervalo que será percorrido(a)

Vamos ver um exemplo concreto de como usá-lo, no exemplo abaixo vamos iterar sobre um intervalo de números:

No exemplo anterior, estamos iterando através do intervalo de 1 a 5 e printamos cada número no console. Este loop usa o operador de intervalo fechado (...). Caso não esteja consolidado o entendimento dos operadores: intervalo fechado (...) ou intervalo semi-aberto (..>), recomendo que pesquise por conta própria, documente conclusões e faça testes para que não exista dúvidas do funcionamento de ambos.

Agora vamos utilizar for-in para iterar sobre os elementos de um Array:

No exemplo anterior, nós iteramos através do array chamado countries e printamos cada elemento do array no console. Como você pode ver, iterar através de um array usando for-in é seguro, limpo e muito fácil, além de extremamente diferente do for padrão da linguagem C. Usando for-in nos previnimos de erros comuns: ás vezes criando o for padrão da linguagem de programção C algumas pessoas desenvolvedoras usavam (<=) ao invés de usar (<) na declaração condicional.

Agora vamos ver como usar for-in para iterar sobre os elementos de um dicionário:

No exemplo acima, cada item do dicionário é retornado como uma tupla (key, value). Nós podemos decompor esta tupla usando quaisquer par de identificadores, no exemplo usamos (abbr, name). Uma coisa muito importante é que os dicionários não garantem a ordem que os itens são armazenados, a ordem da iteração pode ser totalmente diferente da ordem que você utilizou para armazenar os itens, por exemplo.

while

O loop while executa um bloco de código enquanto uma condição é satisfeita. Swift nos fornece duas formas de criar um loop while, são elas while e repeat-while. O while é usado quando queremos executar um loop zero ou mais vezes. E o repeat-while é usado quando queremos executar um loop 1 ou mais vezes.

Nós geralmente usamos loops while quando o número de iterações a ser performado não é conhecido e depende de alguma lógica de negócio.

Usando o loop while

O loop while começa avaliando uma declaração condicional e repetidamente executa um bloco de código enquanto a declaração condicional é verdadeira. O formato da declaração while é o seguinte:

while condition {
    block of code
}

Agora vamos ver como usar o loop while, no exemplo abaixo o loop while continuará executando o bloco de código enquanto o número gerado randomicamente é menor que 7. No exemplo, estamos usando Int.random(in:) uma função que gera um número aleatório de acordo com o intervalo fornecido.

No exemplo anterior, nós iniciamos inicializando a variável ran com o valor 0. O loop while então verifica esta variável e se o valor dela for menor que 7, um novo número entre 0 e 19 é gerado. O loop continuará enquanto o número gerado for menor que 7.

repeat-while

A diferença entre while e repeat-while é que o while verifica a condição antes de executar o bloco de código pela primeira vez e o repeat-while não faz isso.

O formato de uma instrução repeat-while é o seguinte:

repeat {
    block of code
} while condition

Segue um exemplo quentinho do uso concreto do repeat-while:

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io