Operatory bitowe zamiast logicznych

0

W logicznych nie mamy operatora XOR. Ale używać samych bitowych też nie możemy, bo ~ nie obsługuje boolean.
W związku z tym pytanie: używać {&&, ||, !, } czy może {&, |, !, }. Pewnie powiecie: pierwszego zbioru, ale poprosiłbym o wytłumaczenie wyboru.

2
ubuntuser napisał(a):

W logicznych nie mamy operatora XOR.
A !=?

0

Pierwsze są short-circuit tzn obliczają się do chwili kiedy wynik jest znany. Zresztą ja w ogóle nie bardzo rozumiem to pytanie. Przecież to są zupełnie różne operatory, które służą do różnych rzeczy.

0

Dokładnie. Oba zestawy mają swoje zastosowania. Dzięki temu, że przy && mamy krótki obieg (nie jestem pewien jak się to na polski tłumaczy :-p ), to taki kod jest poprawny:

if (obiekt != null && obiekt.isValid()

A taki kod już nie jest:

if (obiekt != null & obiekt.isValid()

Operatora && nie da się użyć na typach innych niż boolean, więc w przypadku ANDowania np intów trzeba posłużyć się operatorem &.

Oba zestawy operatorów mają także różne priorytety: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1