Программирование на языке Java

Булевы логические операторы



Булевы логические операторы

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

ОператорРезультатОператорРезультат
&логическое И (AND)&=И (AND) с присваиванием
|логическое ИЛИ (OR)=ИЛИ (OR) с присваиванием
^логическое исключающее ИЛИ (XOR)^=исключающее ИЛИ (XOR) с присваиванием
||оператор OR быстрой оценки выражений (short circuit OR)==равно
&&оператор AND быстрой оценки выражений (short circuit AND)!=не равно
!логическое унарное отрицание (NOT)?:тернарный оператор if-then-else

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

АВORANDXORNOT A
falsefalsefalsefalsefalsetrue
truefalsetruefalsetruefalse
falsetruetruefalsetruetrue
truetruetruetruefalsefalse

Программа, приведенная ниже, практически полностью повторяет уже знакомый вам пример BitLogic. Только но на этот раз мы работаем с булевыми логическими значениями. class BoolLogic { public static void main(String args[]) { boolean a = true; boolean b = false; boolean с = a | b; boolean d = a & b; boolean e = a ^ b; boolean f = (!a & b) | (a & !b); boolean g = !a; System.out.println(" a = " + a); System.out.println(" b = " + b); System.out.println(" a|b = " + c); System.out.println(" a&b = " + d); System.out.println(" a^b = " + e); System.out.println("!a&b|a&!b = " + f); System.out.println(" !a = " + g); } } С: \> Java BoolLogic а = true b = false a|b = true a&b = false a^b = true !a&b|a&!b = true !a = false

Операторы быстрой оценки логических выражений (short circuit logical operators)

Существуют два интересных дополнения к набору логических опера-торов. Это - альтернативные версии операторов AND и OR, служащие для быстрой оценки логических выражений. Вы знаете, что если первый операнд оператора OR имеет значение true, то независимо от значения второго операнда результатом операции будет величина true. Аналогично в случае оператора AND, если первый операнд - false, то значение вто-рого операнда на результат не влияет - он всегда будет равен false. Если вы в используете операторы && и || вместо обычных форм & и |, то Java не производит оценку правого операнда логического выражения, если ответ ясен из значения левого операнда. Общепринятой практикой является использование операторов && и || практически во всех случаях оценки булевых логических выражений. Версии этих операторов & и | применяются только в битовой арифметике.



Содержание раздела