Intervalos em Laços
Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 48 de 86.
Você tem usado intervalos como 1...5 nos seus loops, mas Swift oferece mais flexibilidade na forma como você define esses intervalos. Vamos explorar os diferentes tipos de intervalo e uma técnica útil para fazer a contagem regressiva.
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 percorrer em ordem inversa. O método reversed() permite iterar de trás para frente por 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 necessários ao chamar reversed() em um intervalo. Essa técnica é perfeita para contagens regressivas ou quando você precisa processar itens do último ao primeiro.
Desafio
FácilEscreva uma função countdown que receba n e retorne 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 da contagem regressiva.
Lógica:
- Crie um intervalo de
1aténe inverta-o - Construa uma string com cada número separado por uma quebra de linha
- Adicione "Go!" na linha final
Parâmetros:
n(Int): O número inicial da 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 retornará "3\n2\n1\nGo!".
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 móduloAtribuição compostaRecapitulação - Matemática simplesOperadores de comparação7Entrada e Saída Básicas
Função printInterpolação de stringsEntrada com readlineConversão de tiposRecapitulação - Até 120Recapitulação - Verdadeiro ou falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoRótulos de argumentosRevisão - função SigmaRevisão - função de validaçãoValores padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeradoIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de tipoNúmerosStringBooleanoConvenções de nomenclaturaRecapitulação - Inicializar variáveis5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz3Optionais
O que são OptionaisDesembrulhando com If LetGuard LetOperador de Coalescência de NilRecapitulação - Desembrulhamento Seguro6Tomada de Decisões
Instrução IfIf - ElseRecapitulação - Calculadora SimplesInstrução SwitchSwitch com Intervalos9Laços de Repetição
Laço For-InLaço WhileLaço Repeat-WhileBreakContinueRevisão - FatorialIntervalos em LaçosLaço AninhadoRevisão - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRevisão - Lista de ProdutosRevisão - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Swift