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, 3O 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, 1Observe 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.
Desafio
FácilEscreva 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
1aténe 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, 3O operador de intervalo semiaberto (..<) exclui o limite superior:
for i in 0..<3 {
print(i)
}
// Saída: 0, 1, 2Para 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, 1Nota: 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
}
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
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa