Operadores lógicos Parte 3
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 26 de 93.
La precedencia controla cómo se agrupa una expresión. ! tiene la mayor prioridad, seguido de && y después ||. Por lo tanto, 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) // falseLa agrupación es diferente del orden de evaluación. || se detiene cuando su operando izquierdo es verdadero, y && se detiene cuando su operando izquierdo es falso. En la primera expresión anterior, b && c nunca se evalúa porque a ya es verdadero.
Los paréntesis pueden cambiar la agrupación o hacerla explícita. Evalúa primero el operando izquierdo y después determina si se necesita el operando derecho.
Desafío
FácilEscribe una función canAccessFeature que reciba isAdmin, isPremium y hasTrialActive, y devuelva si un usuario puede acceder a una función premium.
Un usuario puede acceder a la función si es administrador, o si es miembro premium y tiene una prueba activa.
Usa paréntesis para garantizar el orden de evaluación correcto: la condición && debe agruparse antes de combinarse con ||.
Parámetros:
isAdmin(Boolean): Indica si el usuario es administradorisPremium(Boolean): Indica si el usuario tiene una suscripción premiumhasTrialActive(Boolean): Indica si el usuario tiene un período de prueba activo
Devuelve: true si el usuario puede acceder a la función, false en caso contrario (Boolean)
El controlador proporcionado llama a tu función e imprime el valor que devuelve. Conserva la firma de la función y no añadas una función main.
Pruébalo tú mismo
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// Escribe el código aquí
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación aumentadaOperadores de comparaciónRepaso: matemáticas simples7Entrada y salida básicas
Función PrintlnPlantillas de cadenasEntrada con ReadLineConversión de tiposRepaso - Años hasta la jubilaciónRepaso - Verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoArgumentos con nombreValores predeterminadosFunciones de una sola expresiónRepaso - Función SigmaRepaso - Función de validación2Variables
Val frente a VarInferencia de tiposNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Ternario con expresión ifRepaso: lógica simple8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Nullabilidad
Qué es la seguridad frente a valores nulosTipos anulablesOperador de llamada seguraOperador ElvisConceptos básicos de retos de funcionesAfirmación de no nulidadRepaso: acceso seguro6Toma de decisiones
Sentencia ifIf - ElseIf como expresiónExpresión whenWhen con rangosRepaso - Calculadora simple9Bucles
Bucle ForBucle WhileBucle Do-WhileBreakContinueRangos en buclesBucle anidadoRepaso - FactorialRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Kotlin