Operadores lógicos – Parte 3
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 26 de 93.
A precedência controla como uma expressão é agrupada. ! tem a maior precedência, seguido por && e depois por ||. Assim, a || b && c significa a || (b && c).
val a = true
val b = false
val c = false
println(a || (b && c)) // true
println((a || b) && c) // falseO agrupamento é diferente da ordem de avaliação. || para quando seu operando esquerdo é verdadeiro, e && para quando seu operando esquerdo é falso. Na primeira expressão acima, b && c nunca é avaliada porque a já é verdadeiro.
Os parênteses podem alterar o agrupamento ou torná-lo explícito. Avalie primeiro o operando esquerdo e, em seguida, determine se o operando direito é necessário.
Desafio
FácilEscreva uma função canAccessFeature que receba isAdmin, isPremium e hasTrialActive e retorne se um usuário pode acessar um recurso premium.
Um usuário pode acessar o recurso se for administrador, ou se for membro premium e tiver um período de teste ativo.
Use parênteses para garantir a ordem correta de avaliação: a condição && deve ser agrupada antes de ser combinada com ||.
Parâmetros:
isAdmin(Boolean): Se o usuário é administradorisPremium(Boolean): Se o usuário tem uma assinatura premiumhasTrialActive(Boolean): Se o usuário tem um período de teste ativo
Retorno: true se o usuário puder acessar o recurso, false caso contrário (Boolean)
O driver fornecido chama sua função e imprime o valor retornado. Mantenha a assinatura da função e não adicione uma função main.
Experimente você mesmo
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// 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