When com Intervalos
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 33 de 93.
Às vezes, você precisa verificar se um valor está dentro de um intervalo, em vez de corresponder a valores específicos. A expressão when oferece suporte a isso usando a palavra-chave in combinada com intervalos.
fun main() {
val score = 85
val grade = when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
in 60..69 -> "D"
else -> "F"
}
println(grade) // Imprime: B
}A palavra-chave in verifica se o valor existe dentro do intervalo especificado. Aqui, 85 está dentro de 80..89, então a nota é "B". Isso é muito mais limpo do que escrever score >= 80 && score <= 89 para cada condição.
Você também pode combinar intervalos com valores específicos na mesma expressão when:
fun main() {
val age = 17
val category = when (age) {
0 -> "Newborn"
in 1..12 -> "Child"
in 13..19 -> "Teenager"
else -> "Adult"
}
println(category) // Imprime: Teenager
}Intervalos tornam seu código mais legível ao lidar com condições numéricas contínuas, o que é comum em sistemas de notas, categorias de idade e cenários semelhantes.
Desafio
FácilEscreva uma função getTicketPrice que receba age e retorne o preço do ingresso com base na categoria de idade da pessoa.
Use uma expressão when com intervalos para determinar o preço apropriado do ingresso.
Condições:
- Idade de
0a3: retorne0(gratuito) - Idade de
4a12: retorne10(preço infantil) - Idade de
13a17: retorne15(preço para adolescentes) - Idade de
18a64: retorne25(preço adulto) - Idade de
65ou mais: retorne12(preço para idosos)
Parâmetros:
age(Int): A idade da pessoa
Retorno: O preço do ingresso como um número inteiro (Int)
Experimente você mesmo
fun getTicketPrice(age: Int): Int {
// 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 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