Menu
Coddy logo textTech

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) // false

La 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.

challenge icon

Desafío

Fácil

Escribe 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 administrador
  • isPremium (Boolean): Indica si el usuario tiene una suscripción premium
  • hasTrialActive (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í
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Kotlin