Opérateurs logiques, partie 3
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 26 sur 93.
La priorité détermine la manière dont une expression est regroupée. ! a la priorité la plus élevée, suivi de &&, puis de ||. Ainsi, a || b && c signifie a || (b && c).
val a = true
val b = false
val c = false
println(a || (b && c)) // true
println((a || b) && c) // falseLe regroupement est différent de l’ordre d’évaluation. || s’arrête lorsque son opérande gauche est vrai, et && s’arrête lorsque son opérande gauche est faux. Dans la première expression ci-dessus, b && c n’est jamais évaluée, car a est déjà vrai.
Les parenthèses peuvent modifier le regroupement ou le rendre explicite. Évaluez d’abord l’opérande gauche, puis déterminez si l’opérande droit est nécessaire.
Défi
FacileÉcrivez une fonction canAccessFeature qui prend isAdmin, isPremium et hasTrialActive, et qui renvoie si un utilisateur peut accéder à une fonctionnalité premium.
Un utilisateur peut accéder à la fonctionnalité s’il est administrateur, ou s’il est à la fois membre premium et dispose d’un essai actif.
Utilisez des parenthèses pour garantir l’ordre d’évaluation correct : la condition && doit être regroupée avant d’être combinée avec ||.
Paramètres :
isAdmin(Boolean) : indique si l’utilisateur est administrateurisPremium(Boolean) : indique si l’utilisateur dispose d’un abonnement premiumhasTrialActive(Boolean) : indique si l’utilisateur dispose d’une période d’essai active
Renvoie : true si l’utilisateur peut accéder à la fonctionnalité, false dans le cas contraire (Boolean)
Le pilote fourni appelle votre fonction et affiche la valeur qu’elle renvoie. Conservez la signature de la fonction et n’ajoutez pas de fonction main.
Essayez vous-même
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// Écrivez le code ici
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloAffectation augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin