logo
Методичка Java

3.1.Булевский (логический) тип

Величины типа boolean принимают значения true или false.

Объявление булевских переменных:

boolean a;

boolean b;

Использование в выражениях при присваиваниях:

a=true;

b=a;

Булевские величины обычно используются в логических операторах и в операциях отношения.

Логические операторы

Оператор

Название

Пример

&&

логическое "И" (and)

a&&b

||

логическое "ИЛИ" (or)

a||b

^

логическое "исключающее ИЛИ" (xor)

a^b

!

логическое "НЕ" (not)

!a

Значением логического выражения являются true или false. Например, если a=true, b=true, то a && b имеет значение true. А при a=false или b=false выражение a && b принимает значение false.

Для работы с логическими выражениями часто применяют так называемые таблицы истинности. В них вместо логической единицы (true) пишут 1, а вместо логического нуля (false) пишут 0. В приведённой ниже таблице указаны значения логических выражений при всех возможных комбинациях значений a и b.

a

0

0

1

1

b

0

1

0

1

Выражение

Значения

a&&b

0

0

0

1

a||b

0

1

1

1

a^b

0

1

1

0

!a

1

1

0

0

Выполнение булевских операторов происходит на аппаратном уровне, а значит, очень быстро. Реально процессор оперирует числами 0 и 1, хотя в Java это осуществляется скрытым от программиста образом.

Логические выражения в Java вычисляются в соответствии с так называемым укороченным оцениванием: из приведённой выше таблицы видно, что если a имеет значение false, то значение оператора a&&b будет равно false независимо от значения b. Поэтому если b является булевским выражением, его можно не вычислять. Аналогично, если a имеет значение true, то значение оператора a||b будет равно true независимо от значения b.

Операции отношения

Это операторы сравнения и принадлежности. Они имеют результат типа boolean. Операторы сравнения применимы к любым величинам a и b одного типа, а также к произвольным числовым величинам a и b, не обязательно имеющим один тип.

Оператор

Название

Пример

==

равно

a==b

!=

не равно

a!=b

>

больше

a>b

<

меньше

a<b

>=

больше или равно

a>=b

<=

меньше или не равно

a<=b

instanceof

Принадлежность

объекта классу

obj instanceof MyClass

Про оператор instanceof будет рассказано в разделе, посвящённом динамической проверке типов.