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
: