Expressão When
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 32 de 93.
Quando você precisa verificar vários valores específicos, longas sequências de instruções else if podem se tornar difíceis de ler. O Kotlin oferece a expressão when como uma alternativa mais clara para comparar um valor com várias possibilidades.
fun main() {
val day = 3
val dayName = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
else -> "Weekend"
}
println(dayName) // Imprime: Wednesday
}A expressão when recebe um valor e o compara com cada ramificação. Quando uma correspondência é encontrada, o resultado correspondente é retornado. A ramificação else lida com qualquer valor que não corresponda aos casos listados.
Você também pode corresponder a vários valores em um único ramo, separando-os com vírgulas:
fun main() {
val day = 6
val type = when (day) {
1, 2, 3, 4, 5 -> "Weekday"
6, 7 -> "Weekend"
else -> "Invalid"
}
println(type) // Imprime: Weekend
}Um when que produz um valor deve ser exaustivo: toda entrada possível deve ter um resultado. Estes exemplos com inteiros precisam de else, mas um when booleano com ramificações true e false não precisa.
Desafio
FácilVocê recebe a seguinte variável:
val month = 4Use uma expressão when para determinar a estação com base no número do mês e armazene o resultado em uma variável chamada season.
Condições:
- Os meses
12,1,2devem retornar"Winter" - Os meses
3,4,5devem retornar"Spring" - Os meses
6,7,8devem retornar"Summer" - Os meses
9,10,11devem retornar"Fall" - Qualquer outro valor deve retornar
"Invalid month"
Use valores separados por vírgulas nas ramificações de when para agrupar os meses que pertencem à mesma estação.
Imprima o valor de season.
Experimente você mesmo
fun main() {
val month = 4
// TODO: Escreva seu código abaixo
// Use uma expressão when para determinar a estação com base no mês
// Armazene o resultado em uma variável chamada 'season'
// Imprima o resultado
println(season)
}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