In java, esiste un operatore logico OR (||
) e un operatore AND logico (&&
). Esiste un operatore logical XOR? Ho provato ^^
ma non funziona.Qual è l'operatore logico xor in java?
risposta
L'operatore logico XOR esiste in Java ed è scritto ^
.
per ottenere la giusta terminologia, in Java:
&
,|
e^
sono chiamati bit per bit o logici operatori, a seconda delle tipologie di loro argomentazioni;&&
e||
sono chiamati operatori condizionale.
Per dettagli, vedere JLS § 15.22. Bitwise and Logical Operators in poi.
Non esiste un equivalente diretto per &&
e ||
per XOR. L'unico motivo e ||
esiste come operatori separati da &
e |
è il loro short-circuiting behaviour (è per questo che vengono chiamati "condizionali") e XOR non può essere cortocircuitato.
Interessante. La tabella di _The Java ™ Tutorials_ su [Operators] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) fa riferimento a "operatori logici" distinti da "operatori bit a bit", tuttavia [ Operatori di uguaglianza, relazionali e condizionali] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html) si riferisce a "operatori condizionali" come dici tu. –
Ah, penso di capire il conflitto. In realtà penso che "operatore logico" significhi che i valori booleani vengono confrontati. Pertanto gli operatori di condizione sono operatori logici e gli operatori bit a bit possono essere utilizzati anche come operatori logici. Ecco perché il JLS dice "Operatori bit a bit e logici" quando ci si riferisce a '&', '|', e '^'. Quindi non penso che sarebbe scorretto fare riferimento a '&&' e '||' (gli operatori condizionali) come operatori logici. –
Cosa farebbe un xor logico? C'è un xor bit a bit che è ^. –
Un xor logico (A logical_xor B) è praticamente solo 'A! = B' – nos