Operatory logiczne

Operatory logiczne to operatory których operandami są wartości logiczne. Operatory dostępne w języku Java to: operator koniunkcji (tj. operator and) &, operator alternatywy (tj. operator or) |, operator alternatywy wykluczającej (tj. operator xor) ^ i jednoargumentowy operator negacji !. Operatory & i | posiadają dodatkowo wersje tzw. leniwe. Są to odpowiednio operatory && i ||.

Operatory w wersji leniwej, tj. && i || różnią się od operatorów zachłannych & i | sposobem wyliczania wartości. Jak wiemy, aby alternatywa dwóch wyrażeń była prawdziwa wystarczy aby jeden z operandów tej alternatywy był prawdziwy. Jeśli więc pierwszy operand alternatywy ma wartość true to nie ma potrzeby wyliczania wartości drugiego operandu – i bez tego wiadomo, że alternatywa jest prawdziwa. Podobnie z koniunkcją – jeśli pierwszy operand ma wartość false to nie ma potrzeby wyliczania wartości drugiego operandu; i tak całe wyrażenie ma przecież wartość false.