Зарегистрируйтесь, чтобы продолжить обучение

Логический тип Основы Java

Кроме арифметических операций, из школьной математики нам известны еще и операции сравнения, например:

5 > 4

Это звучит как вопрос: «Пять больше четырех?». В данном случае, ответ «да». В других случаях, ответом может быть «нет», например, для такого выражения:

3 < 1

Операции сравнения не имеют привязки к числам. Сравнивать можно практически что угодно — например, строки. Когда мы входим на какой-то сайт, внутри происходит сравнение введенного логина и пароля с теми, какие есть в базе. Если совпадение есть, то происходит авторизация.

Языки программирования адаптировали все математические операции сравнения практически в неизменном виде. Единственное серьезное отличие – операторы равенства и неравенства.

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

Список операций сравнения в Java:

  • < — меньше
  • <= — меньше или равно
  • > — больше
  • >= — больше или равно
  • == — равно
  • != — не равно

Посмотрим на пару примеров логических операций:

5 > 4
password == text

Оба примера — это выражения. Результат вычисления этих выражений — это одно из двух специальных значений:

  • true — «истина»
  • false— «ложь»

even-or-odd

Это новый для нас тип данных — boolean. Он содержит всего лишь два этих значения. Так выглядит пример кода с ним:

var result = 5 > 4;
System.out.println(result); // => true

Попробуем написать метод, который принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до года:

// Метод, возвращающий boolean, называется предикатом
// Обычно такие методы имеют префикс has, can, is, was и так далее
public static boolean isInfant(int age) {
    return age < 1;
}

Пользуемся тем фактом, что любая операция — это выражение. Поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения age < 1».

В зависимости от пришедшего параметра, сравнение будет либо истинным (true), либо ложным (false). В итоге return вернет этот результат:

System.out.println(App.isInfant(3)); // => false
System.out.println(App.isInfant(0)); // => true

Дополнительные материалы

  1. Операторы сравнения в Java
  2. Операторы равенства в Java

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff