Приоритет логических операторов в Kotlin
Давайте теперь поставим несколько связок подряд. Они считаются не слева направо. Сначала идет отрицание, затем связка И, затем связка ИЛИ.
В следующем выражении сначала собирается правая часть, связка И. Ложь и ложь дают ложь. Эта ложь стоит справа от истины, и связка ИЛИ дает истину:
println(true || false && false) // true
Отрицание считается раньше связки И. Сначала ложь становится истиной. Затем эта истина сталкивается с ложью справа, и результат - ложь:
println(!false && false) // false
Выведите результат следующего выражения:
true && false || true
Выведите результат следующего выражения:
false || !false