Intervalos em Laços
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 51 de 93.
Até agora, usamos 1..5 para criar intervalos que contam de um em um. O Kotlin oferece maneiras mais flexíveis de definir intervalos para seus loops.
Para contar de trás para frente, use downTo:
for (i in 5 downTo 1) {
println(i)
}
// Saída: 5, 4, 3, 2, 1Para pular números, adicione step para controlar o incremento:
for (i in 0..10 step 2) {
println(i)
}
// Saída: 0, 2, 4, 6, 8, 10Você pode combinar downTo com step para fazer uma contagem regressiva com intervalos personalizados:
for (i in 10 downTo 1 step 3) {
println(i)
}
// Saída: 10, 7, 4, 1Se precisar excluir o último valor, use until em vez de ..:
for (i in 1 until 5) {
println(i)
}
// Saída: 1, 2, 3, 4A palavra-chave until é especialmente útil ao trabalhar com índices baseados em zero, quando geralmente você precisa parar antes de atingir um determinado número.
Desafio
MédioLeia dois números inteiros da entrada: start e end.
Imprima todos os números pares de start até end (inclusive), cada um em uma linha separada.
Use downTo com step para criar o intervalo. Se start for ímpar, comece pelo primeiro número par abaixo dele.
Por exemplo, se a entrada for:
10
2A saída deverá ser:
10
8
6
4
2Se a entrada for:
9
3A saída deverá ser:
8
6
4Se não houver números pares no intervalo solicitado, imprima No even numbers em uma linha. Caso contrário, imprima cada número par em sua própria linha.
Experimente você mesmo
fun main() {
// Ler entrada
val start = readLine()!!.toInt()
val end = readLine()!!.toInt()
// TODO: Escreva seu código abaixo
// Use downTo com step para imprimir todos os números pares de start até end
// Se start for ímpar, comece a partir do primeiro número par abaixo dele
}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 aumentadaOperadores de comparaçãoRecapitulação – Matemática simples7Entrada e Saída Básicas
Função PrintlnTemplates de StringEntrada com ReadLineConversão de TiposRevisão - Anos até a AposentadoriaRevisão - Verdadeiro ou Falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoArgumentos nomeadosValores padrãoFunções de expressão únicaRecapitulação — função SigmaRecapitulação — função de validação2Variáveis
Val vs VarInferência de TiposNúmerosStringBooleanoConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores – Parte 2
Operadores lógicos – Parte 1Operadores lógicos – Parte 2Operadores lógicos – Parte 3Ternário com expressão ifRecapitulação – Lógica simples8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz3Nullabilidade
O que é Null SafetyTipos anuláveisOperador de chamada seguraOperador ElvisNoções básicas do desafio de funçõesAsserção de não nuloRecapitulação - Acesso seguro6Tomada de Decisões
Instrução IfIf - ElseIf como ExpressãoExpressão WhenWhen com IntervalosRecapitulação - Calculadora Simples9Laços de Repetição
Laço ForLaço WhileLaço Do-WhileBreakContinueIntervalos em LaçosLaço AninhadoRecapitulação - FatorialRecapitulação - Entrada Dinâmica12Fundamentos de Listas
List vs MutableListAcessando ElementosModificando ListasMétodos de ListaPair e TripleRecapitulação - Lista de ProdutosRecapitulação - Lista Invertida15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Kotlin