If como Expressão
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 31 de 93.
Você viu como if pode ser usado em uma única linha para escolher entre dois valores. Mas, quando seus blocos if-else contêm várias instruções, você ainda pode usar toda a estrutura como uma expressão: a última expressão de cada ramo se torna o valor retornado.
fun main() {
val score = 85
val message = if (score >= 60) {
val grade = "passing"
"You got a $grade score!"
} else {
val grade = "failing"
"You got a $grade score."
}
println(message) // Imprime: You got a passing score!
}Cada ramo pode conter várias instruções, mas a última expressão no ramo é o que é retornado e atribuído à variável. Nesse caso, a string na linha final de cada bloco torna-se o valor de message.
Isso também funciona com cadeias de else if:
fun main() {
val temperature = 25
val description = if (temperature > 30) {
"Hot"
} else if (temperature > 20) {
"Warm"
} else {
"Cool"
}
println(description) // Imprime: Warm
}Ao usar if como uma expressão, o ramo else é obrigatório: Kotlin precisa garantir que um valor seja retornado independentemente de qual condição seja verdadeira.
Desafio
FácilVocê recebe a seguinte variável:
val hours = 45Use uma expressão if com várias instruções em cada ramo para determinar o status de pagamento de um trabalhador e criar uma mensagem.
Crie uma variável payStatus usando uma expressão if:
- Se
hoursfor maior que 40:- Crie uma variável
overtimeigual ahours - 40 - A última expressão deve ser
"Overtime: $overtime extra hours"
- Crie uma variável
- Caso contrário:
- Crie uma variável
remainingigual a40 - hours - A última expressão deve ser
"Regular: $remaining hours until overtime"
- Crie uma variável
Imprima o valor de payStatus.
Experimente você mesmo
fun main() {
val hours = 45
// TODO: Escreva seu código abaixo
// Crie uma variável payStatus usando uma expressão if
// Se hours > 40: crie a variável overtime e retorne "Overtime: $overtime extra hours"
// Caso contrário: crie a variável remaining e retorne "Regular: $remaining hours until overtime"
}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