Menu
Coddy logo textTech

Intervalos em Loops

Parte da seção Fundamentos do Journey de Swift da Coddy — lição 48 de 86.

Você tem usado intervalos como 1...5 em seus loops, mas o Swift oferece mais flexibilidade na forma como você define esses intervalos. Vamos explorar os diferentes tipos de intervalos e uma técnica útil para contar de trás para frente.

O operador de intervalo fechado (...) inclui ambos os limites:

for i in 1...3 {
    print(i)
}
// Saída: 1, 2, 3

O operador de intervalo semiaberto (..<) exclui o limite superior, o que é especialmente útil ao trabalhar com índices baseados em zero:

for i in 0..<3 {
    print(i)
}
// Saída: 0, 1, 2

Às vezes você precisa fazer um loop em ordem inversa. O método reversed() permite que você itere de trás para frente através de um intervalo:

for i in (1...3).reversed() {
    print(i)
}
// Saída: 3, 2, 1

Observe os parênteses ao redor do intervalo — eles são obrigatórios ao chamar reversed() em um intervalo. Esta técnica é perfeita para contagens regressivas ou quando você precisa processar itens do último para o primeiro.

challenge icon

Desafio

Fácil

Escreva uma função countdown que recebe n e retorna uma string contendo uma contagem regressiva de n até 1, seguida por "Go!".

Use o método reversed() em um intervalo para iterar de trás para frente e construir a string de contagem regressiva.

Lógica:

  • Crie um intervalo de 1 até n e inverta-o
  • Construa uma string com cada número separado por uma nova linha
  • Adicione "Go!" na linha final

Parâmetros:

  • n (Int): O número inicial para a contagem regressiva (1 ou maior)

Retorno: Uma string com cada número da contagem regressiva em sua própria linha, terminando com "Go!" (String). Formato:

3
2
1
Go!

Por exemplo, se n for 3, a função retorna "3\n2\n1\nGo!".

Folha de consulta

Swift fornece dois operadores de intervalo para loops:

O operador de intervalo fechado (...) inclui ambos os pontos finais:

for i in 1...3 {
    print(i)
}
// Saída: 1, 2, 3

O operador de intervalo semiaberto (..<) exclui o limite superior:

for i in 0..<3 {
    print(i)
}
// Saída: 0, 1, 2

Para iterar de trás para frente em um intervalo, use o método reversed():

for i in (1...3).reversed() {
    print(i)
}
// Saída: 3, 2, 1

Nota: Parênteses ao redor do intervalo são necessários ao chamar reversed().

Experimente você mesmo

func countdown(n: Int) -> String {
    // Escreva o código aqui
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos