Menu
Coddy logo textTech

Логические операторы, часть 3

Часть раздела Основы путешествия по Kotlin на Coddy. Урок 26 из 93.

Приоритет управляет группировкой выражения. ! связывает наиболее тесно, за ним следует &&, затем ||. Поэтому a || b && c означает a || (b && c).

val a = true
val b = false
val c = false
println(a || (b && c)) // true
println((a || b) && c) // false

Группировка отличается от порядка вычисления. || останавливается, когда его левый операнд равен true, а && — когда его левый операнд равен false. В первом выражении выше b && c никогда не вычисляется, потому что a уже равно true.

Скобки могут изменить группировку или сделать её явной. Сначала вычислите левый операнд, затем определите, нужен ли правый операнд.

challenge icon

Задание

Легко

Напишите функцию canAccessFeature, которая принимает isAdmin, isPremium и hasTrialActive и возвращает информацию о том, может ли пользователь получить доступ к премиум-функции.

Пользователь может получить доступ к функции, если он администратор или если он одновременно является премиум-подписчиком и у него есть активный пробный период.

Используйте скобки, чтобы обеспечить правильный порядок вычисления: условие && должно быть сгруппировано до объединения с ||.

Параметры:

  • isAdmin (Boolean): является ли пользователь администратором
  • isPremium (Boolean): есть ли у пользователя премиум-подписка
  • hasTrialActive (Boolean): есть ли у пользователя активный пробный период

Возвращает: true, если пользователь может получить доступ к функции, и false в противном случае (Boolean)

Предоставленный драйвер вызывает вашу функцию и выводит возвращаемое ею значение. Сохраните сигнатуру функции и не добавляйте функцию main.

Попробуйте сами

fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
    // Напишите код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Kotlin