Логические операторы, часть 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.
Скобки могут изменить группировку или сделать её явной. Сначала вычислите левый операнд, затем определите, нужен ли правый операнд.
Задание
ЛегкоНапишите функцию canAccessFeature, которая принимает isAdmin, isPremium и hasTrialActive и возвращает информацию о том, может ли пользователь получить доступ к премиум-функции.
Пользователь может получить доступ к функции, если он администратор или если он одновременно является премиум-подписчиком и у него есть активный пробный период.
Используйте скобки, чтобы обеспечить правильный порядок вычисления: условие && должно быть сгруппировано до объединения с ||.
Параметры:
isAdmin(Boolean): является ли пользователь администраторомisPremium(Boolean): есть ли у пользователя премиум-подпискаhasTrialActive(Boolean): есть ли у пользователя активный пробный период
Возвращает: true, если пользователь может получить доступ к функции, и false в противном случае (Boolean)
Предоставленный драйвер вызывает вашу функцию и выводит возвращаемое ею значение. Сохраните сигнатуру функции и не добавляйте функцию main.
Попробуйте сами
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеОператоры сравненияПовторение — простая математика7Базовый ввод-вывод
Функция PrintlnШаблоны строкВвод ReadLineПреобразование типовПовторение — лет до выхода на пенсиюПовторение — правда или ложь10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияИменованные аргументыЗначения по умолчаниюФункции с одним выражениемПовторение — функция SigmaПовторение — функция валидации13Итерация по последовательностям
Итерация по элементамМетод WithIndexИтерация по строкам, ч. 1Итерация по строкам, ч. 2Повторение — индексированные буквы2Переменные
Val и VarВывод типовЧислаСтрокаЛогическое значениеСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Логические операторы, часть 3Тернарный оператор с выражением ifПовторение — простая логика8Калькулятор разделения счёта
Приветственное сообщениеВвод данных3Обработка null
Что такое безопасность nullТипы, допускающие nullОператор безопасного вызоваОператор ЭлвисаОсновы задания на функцииУтверждение ненулевого значенияПовторение — безопасный доступ6Принятие решений
Инструкция ifIf — ElseIf как выражениеВыражение whenWhen с диапазонамиПовторение — простой калькулятор9Циклы
Цикл ForЦикл WhileЦикл Do-WhileBreakContinueДиапазоны в циклахВложенный циклПовторение — факториалПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Kotlin