Swift - Loops
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
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 intervalocollection/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: