Operadores de comparação e operadores lógicos em Kotlin
Что это и зачем?
Представь, что ты играешь в компьютерную игру. Чтобы пройти уровень, тебе нужно проверить: «Хватит ли у меня жизней?», «Собрал ли я все ключи?», «Не наступил ли я на мину?». Компьютер должен принимать решения на основе таких проверок. В программировании эти проверки делаются с помощью операторов сравнения (они сравнивают числа или текст) и логических операторов (они соединяют несколько проверок в одну).
Например, ты пишешь программу для дневника: «Если оценка больше или равна 4, то вывести "Молодец!"». Или для игры: «Если у игрока закончились жизни И он упал в пропасть, то игра заканчивается». Без этих операторов компьютер не сможет сам решать, что делать в разных ситуациях.
Синтаксис и примеры кода
В Kotlin операторы сравнения выглядят так же, как в математике, но есть пара особенностей. Вот основные:
==— равно (проверяет, одинаковы ли значения)!=— не равно>— больше<— меньше>=— больше или равно<=— меньше или равно
Логические операторы соединяют условия:
&&— И (оба условия должны быть истинны)||— ИЛИ (хотя бы одно условие истинно)!— НЕ (переворачивает истину на ложь)
fun main() {
// Пример 1: Сравнение чисел
val age = 12
val canRide = age >= 14 // Проверяем, можно ли кататься на аттракционе
println("Можно кататься? $canRide") // Выведет: false, потому что 12 меньше 14
// Пример 2: Проверка строк (текста)
val password = "kotlin123"
val input = "kotlin123"
val isCorrect = password == input // Сравниваем строки
println("Пароль верный? $isCorrect") // Выведет: true
// Пример 3: Логическое И (&&) — оба условия должны быть true
val hasKey = true
val doorIsOpen = false
val canEnter = hasKey && doorIsOpen // Нужен и ключ, и открытая дверь
println("Можно войти? $canEnter") // Выведет: false (дверь закрыта)
// Пример 4: Логическое ИЛИ (||) — хотя бы одно true
val isWeekend = true
val isHoliday = false
val canSleep = isWeekend || isHoliday // Можно спать, если выходной ИЛИ праздник
println("Можно спать? $canSleep") // Выведет: true (сегодня выходной)
// Пример 5: НЕ (!) — обратное условие
val isRaining = false
val canPlayOutside = !isRaining // Если НЕ идет дождь, можно играть
println("Можно играть на улице? $canPlayOutside") // Выведет: true
}
Обрати внимание: в Kotlin для сравнения используется ==, а не = (одинарное равно — это присваивание). Если напишешь if (x = 5), будет ошибка!
Сравнение с Python
В Python те же операторы выглядят почти так же, но есть одно важное отличие: в Python для логических операторов используются слова and, or, not, а не символы &&, ||, !.
# Python версия тех же примеров
age = 12
can_ride = age >= 14
print("Можно кататься?", can_ride) # False
password = "kotlin123"
input_str = "kotlin123"
is_correct = password == input_str
print("Пароль верный?", is_correct) # True
has_key = True
door_is_open = False
can_enter = has_key and door_is_open # Вместо && пишем and
print("Можно войти?", can_enter) # False
is_weekend = True
is_holiday = False
can_sleep = is_weekend or is_holiday # Вместо || пишем or
print("Можно спать?", can_sleep) # True
is_raining = False
can_play_outside = not is_raining # Вместо ! пишем not
print("Можно играть на улице?", can_play_outside) # True
Главное отличие: в Kotlin ты используешь символы (&&, ||, !), а в Python — английские слова. В остальном логика одинаковая. Kotlin ещё требует, чтобы в if было именно Boolean значение (true/false), а в Python можно написать if 5: (число 5 считается истиной). В Kotlin так нельзя — нужно явно сравнивать: if (x > 0).
Типичные ошибки новичков
- Путают = и ==. В Kotlin
=— это присвоить значение, а==— проверить равенство. Ошибка:if (x = 5)— компилятор выдаст ошибку, потому чтоx = 5не возвращает true/false. - Забывают про скобки. В сложных условиях нужно ставить скобки, чтобы указать порядок. Например:
if (a > 0 && b > 0 || c > 0)— без скобок непонятно, что проверяется первым. Правильно:if ((a > 0 && b > 0) || c > 0). - Сравнивают разные типы. Нельзя сравнивать число и строку напрямую:
5 == "5"— это всегда false, и Kotlin может выдать предупреждение. Сначала преобразуй:5.toString() == "5"или5 == "5".toInt(). - Путают && и ||. Запомни:
&&— это «строгий» оператор (нужны оба условия),||— «мягкий» (достаточно одного). Ошибка: написатьif (age > 10 && age < 20)для проверки возраста от 10 до 20 — это правильно, аif (age > 10 || age < 20)— всегда true, потому что любое число либо больше 10, либо меньше 20. - Не используют ! для отрицания. Вместо
if (x != 5)новички иногда пишутif (x == 5) { ... } else { ... }— это работает, но длиннее. Используй!для краткости:if (!isRaining).
Итог
Операторы сравнения и логические операторы — это основа для принятия решений в программе. Ты научился:
- Сравнивать числа и строки с помощью
==,!=,>,<,>=,<=. - Соединять условия с помощью
&&(И),||(ИЛИ) и!(НЕ). - Видеть разницу между Kotlin и Python: в Kotlin символы, в Python слова.
- Избегать типичных ошибок: не путать
=и==, ставить скобки, не сравнивать разные типы.
Теперь ты можешь писать программы, которые реагируют на разные ситуации. Попробуй сам: напиши код, который проверяет, можно ли купить билет в кино (возраст >= 12 И есть деньги), или игру, где персонаж получает урон, если наступил на мину ИЛИ его атаковал враг. Удачи!