Что такое boolean в java
Перейти к содержимому

Что такое boolean в java

  • автор:

Тип данных boolean и логические операторы — введение в Java 005 #

Правда или ложь

Boolean в Java — это логический тип данных. Переменная типа boolean может принимать всего два значения — это правда или ложь — true & false. Эти два значения обозначаются в других языках и часто выдаются на экран как 1 и 0, но всё же не равны этим значениям: например, выражение boolean b = 0; приведёт к ошибке при компиляции программы. Но мы можем сравнить переменные или выполнить логическую операцию с типом данных boolean:

Говоря о булевых или логических типах данных, нам придётся освежить свои воспоминания о булевой алгебре и возможных логических операциях.

Таблица истинности #

a b a & b a I b a ^ b ! a
false false false false false true
false true false true true true
true false false true true false
true true true true false false

Давайте представим себе пример из жизни: мы ищем на сайте все статьи, которые мы опубликовали и комментировали. Должны быть два совпадения — это вариант a & b. Или мы ищем все статьи, в которых есть упоминание слов “алгебра” или “математика” — это a | b. А отыскать все статьи, которые написаны не нами, можно, применив логический оператор !a. Стать исключительно космонавтом или медиком — это a ^ b

Это так называемые булевы или логические операции. В интернете много материала по ключевым словам: таблица истинности, булева алгебра, теория множеств, конъюнкция, дизъюнкция.

С помощью таблицы с результатами логических операций можно перепроверить работу Java:

Надо понимать, что значение вашего чекбокса (галочки) на сайте Facebook при регистрации — “с правилами ознакомлен и согласен” — и есть значение булевой переменной в программе.

Логические операторы, которые поддерживаются Java #

Логический операторы Значение
== Проверка на соответствие (допустим, что a равен b)
!= Не равно (если a не равно b, то)
! Отрицание, логическое не
& Логическое И, and
| Логическое или, or
^ Исключительное или, XOR
&& Укороченный &
|| Укороченный или

Амперсанд — это название знака &.
Карет (англ. caret) — это название знака ^.
Пайп (pipeline), Вертикальная черта — это название знака |.

Мы ещё раз рассмотрим данные операторы позже. Пока мы должны понимать, что с арифметическими операторами всё немного сложнее, чем хотелось бы.

Булева алгебра #

Булева алгебра, ударение на первый слог. БУлева.

Принципиально основы булевой алгебры не должны были давать в школе. Программисты учат её в институте.

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

Дизъюнкция #

Когда мама ИЛИ папа дают мне деньги на карманные расходы, то я бегу и покупаю себе мороженное.

Знакомая ситуация, деньги можно получить в трёх случах из четырёх. В одном случае же деньги может дать и мама, и папа, тогда и друга можно угостить мороженным.

Дизъюнкция — логическое сложение, логическое ИЛИ, включающее или, просто “или”(англ. OR; нем. ODER) В Java операторы «|» и «||»

Пример в технике; дублирование выключателя или кнопки, дверной звонок и звонок у калитки вызывают одну и туже реакцию — включается мелодия звонка.

В учебниках можно встретить обозначение “больше либо равно единице” — =>1.

Конъюнкция #

Конъюнкция — логическое “И”, логическое умножение, просто “И”, “AND”, «&».

В Java оператор «&» и «&&».

Если светит солнце “И” у меня выходной, то я иду купаться на озеро.

Пример из жизни. Ядерный чемоданчик могут активировать только два офицера одновременно. По отдельности чемодан остаётся неактивным.

Антиваленц #

“XOR”, эксклюзивное или, “EOR”, “EXOR”. В Java оператор «^».

Только на горных лыжах в Австрии или на лошадях у бабушки в деревне я забываю про свою работу.

Или ты садишься за математику или я расскажу всё отцу.

ИЛИ — ИЛИ. Исключительное или.

Лампочка в больнице может работать от городского электричества или от дизельного генератора в подвале. Но не от двух источников одновременно.

В учебниках можно встретить обозначение “равно единице” — =1.

Отрицание #

Negation. NOT. В Java оператор «!».

Давайте представим огромный станок по продольной распилке леса. В цеху есть две кнопки. Зелёная и красная. При включении зелёной пила должна работать. При нажатии на красную пила должна остановится.

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

Домашнее задание #

  1. Что выдаст программа, если запросить значения a, b, c, d, e, f?
  2. Посчитайте сначала в уме и проговорите вслух, что делает каждая строчка.
  3. Напишите программу и проверьте свои результаты.
  4. Сравните строчку вывода со своей:
  5. Повторение String: Найдите метод из официальной библиотеки и покажите его работу. По возможности используйте printf.
  6. Задача. Не для решения в Java, а для попытки понимания логических операций в уме.
    Петя, Вася и Маша остались дома одни. Кто-то из них ел варенье. На вопрос мамы, кто это сделал, они сказали:
    1. Петя: “Я не ел. Маша тоже не ела.”
    2. Вася: “Маша действительно не ела. Это сделал Петя”
    3. Маша: “Вася врет. Это он съел.”

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

    Что такое boolean в java

    Java provides a wrapper class Boolean in java.lang package. The Boolean class wraps a value of the primitive type boolean in an object. An object of type Boolean contains a single field, whose type is boolean. In addition, this class provides useful methods like to convert a boolean to a String and a String to a boolean, while dealing with a boolean variable.

    Creating a Boolean object

    Boolean class provides two constructors for creating Boolean object.

    Логический тип boolean

    Как мы уже убедились, в Java есть очень полезный оператор — if-else . Он выполняет один блок команд, если условие в скобках истинно, и второй блок команд, если условие ложно.

    Чтобы было удобно работать с выражениями, которые могут быть истинными или ложными, в Java добавили специальный тип — boolean . Его главная особенность заключается в том, что переменные этого типа могут принимать всего два значения: true ( истина ) и false ( ложь ).

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

    И зачем же нужен такой примитивный тип?

    Все дело в том, что в него можно сохранять значения логических выражений. Пример:

    Логическая переменная isIce содержит значение true ( истина )

    2. Использование булевых переменных

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

    Например, логическую переменную можно подставить в условие if -а:

    Код Эквивалент

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

    Java Boolean

    Java boolean primitive data type and boolean variables

    Boolean expressions in Java

    comparison operators Java operator Operation example The result of operation
    Less < a < b true if a is less than b otherwise false
    Greater > a > b true if a is greater than b , otherwise false
    Less than or equal <= a <= b true if a is less than b or they are equal, otherwise false
    Greater or equal >= a >= b true, if a greater or equal to b , otherwise false
    Equal == a == b true, if a is equal to b , otherwise false
    Not equal != a != b true, if a is not equal to b , otherwise false

    Where boolean values are used

    Java boolean operators. Building Boolean Expressions with Boolean Operators

    Logical negation, it is also NOT or inversion. In Java, denoted by the symbol ! before expression.

    Logical and, it is also AND or conjunction. Denoted by the symbol & between the two expressions to which it is applied.

    Logical or in Java, it is also OR, it is also disjunction. In Java, denoted by the symbol | between two expressions.

    Exclusive or, XOR, strict disjunction. In Java, it is denoted by the symbol ^ between two expressions.

    In Java, logical operators include the conditional or, denoted as || , as well as the conditional and, && .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *