Boolean и операторы сравнения в Kotlin

Мы уже познакомились с несколькими типами данных, такими как Int, Double и String. В данном уроке будет рассмотрен тип данных, который используется с операторами сравнения.

Содержание статьи

При сравнении двух чисел для поиска наибольшего 1 > 2 ответом будет либо истина, либо ложь. В Kotlin для этого предусмотрен отдельный тип данных — Boolean. Тип был назван так в честь довольно умного человека по имени Джордж Буль, который ввел целую математическую область, рассматривающую понятия истинного и ложного.

В Kotlin булев тип используется следующим образом:

В Kotlin есть вывод типа, поэтому сам тип можно не указывать, Kotlin сам поймет какой это тип:

Булево значение может быть только истинным или ложным, для чего используются ключевые слова true и false. В коде выше, ключевые слова используются для указания состояния каждой константы.

Boolean, или логические операторы в Kotlin

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

В Kotlin для этого используется оператор равенства, который обозначается как ==:

Kotlin знает, что типом константы doesOneEqualTwo является тип Boolean. Очевидно, что 1 не равен 2. Следовательно, константа doesOneEqualTwo будет false.

Аналогичным образом можно выяснить, не равны ли два значения через использование оператора !=:

На этот раз сравнение истинно (true), потому что 1 не равна 2, и константа doesOneNotEqualTwo будет true.

Оператор префикс ! переключает true на false и наоборот. Выше указанный код можно написать следующим образом:

Так как 1 не равна 2, (1 == 2) принимает значение false, и затем ! переключает это на true.

Еще два оператора помогают узнать если одно значение больше (>) или меньше (<) другого значения. Вам они должны быть знакомы с уроков математики:

Несложно понять, что константа isOneGreaterThanTwo будет false, а константа isOneLessThanTwo будет true.

Также существует оператор, который проверяет, меньше значение другого значения или равно ему: <=. Это комбинация < и ==, поэтому будет возвращено значение true, если первое значение меньше второго или равно ему.

Точно так же есть оператор, который позволяет проверить, больше ли значение или равно другому: >=.

Булева логика в Kotlin

В каждом из приведенных выше примеров проверяется только одно условие. Когда Джордж Буль ввел булевы значения, у него были более грандиозные планы. Он изобрел булеву логику, которая позволяет комбинировать несколько условий для формирования результата.

Один из способов комбинировать условия — использовать AND (И). Когда вы соединяете с AND (И) два булевых значения, результатом является другое булево значение. Если оба входных значения истинны, результат будет истинным. В противном случае результат будет ложным.

булева логика

В Kotlin оператором для AND (И) является &&:

В данном случае константа and будет равна true. Если бы какое-то из значений справа было false, тогда and тоже равнялась бы false.

Другим способом соединения условий является использование OR (ИЛИ). При использовании OR с двумя булевыми значениями результат будет true, если хотя бы одно из булевых значений истинно. Только если оба значения ложны, результат будет равен false.

В Kotlin для булева оператора OR используется ||:

В данном случае константа or будет равна true. Если бы оба значения справа были false, тогда константа or тоже была бы равна false. Если бы они оба были true, тогда значением константы or по-прежнему было бы true.

В Kotlin булева логика обычно используется, когда есть несколько условий. Возможно, требуется определить, если два условия истинны. В данном случае можно использовать AND. Если нужно выяснить, является ли истинными хотя бы одно из двух условий, тогда можно использовать OR.

К примеру, рассмотрим следующий код:

В каждом случае проверяются два разных условия, которые соединяются с помощью AND или OR.

Также можно использовать булеву логику для объединения более двух сравнений. К примеру, можно создать сложное сравнение вроде следующего:

Скобки устраняют неоднозначность выражения. Сначала Kotlin оценивает выражение внутри круглых скобок, а затем оценивает все выражение, выполнив следующие этапы:

Равенство строк в Kotlin

Зачастую требуется определить, равны ли две строки. К примеру, для детской игры по угадыванию названий животных по фото потребуется определить, ответил ли игрок правильно.

В Kotlin можно сравнить две строки через использование оператора равенства ==. Все делается точно так же, как и в случае сравнения чисел. К примеру:

Здесь у константы dogEqualsCat булев тип, ее значения равно false, потому что "dog" не равна "cat". Все просто!

Как и в случае с числами, здесь можно не только узнать, являются ли строки равными, но и сравнить их. К примеру:

Синтаксис проверяет, если одна строка идет раньше по алфавиту. В данном случае константа order равно true, потому что "cat" идет раньше по алфавиту, чем "dog".

Задачи для проверки

  1. Создайте константу myAge, значением которой будет ваш возраст. Затем создайте константу isTeenager, которая использует булеву логику для определения, находится ли возраст в промежутке от 13 до 19;
  2. Создайте другую константу под названием theirAge, значением которой будет 30. Затем создайте константу bothTeenagers, которая использует булеву логику, чтобы определить, являются ли оба человека подростками;
  3. Создайте константу reader, значением которой будет ваше имя. Создайте константу author, значением которой будет имя «Richard Lucas». Создайте константу authorIsReader, которая использует равенство строк, чтобы определить, равны ли reader и author;
  4. Создайте константу readerBeforeAuthor, которая использует сравнение строк, чтобы определить, следует ли reader перед author по алфавиту.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Sergei
Sergei
2 лет назад

Спасибо огромное за объяснение. Самому разобраться очень сложно в этом.

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x