- 1 1. Cos’è “OR” in Java?
- 2 2. L’operatore logico OR || – Basi (Il più comune negli if)
- 3 3. Importante: || utilizza la valutazione a corto circuito
- 4 4. La Differenza Tra || e | (Il Punto di Confusione Più Comune)
- 4.1 4.1 Capire Prima la Conclusione: Hanno Casi d’Uso Diversi
- 4.2 4.2 La Differenza Quando Usati con Booleani
- 4.3 4.3 La Differenza Chiave: Short-Circuit vs No Short-Circuit
- 4.4 4.4 Perché Usare | nelle Condizioni È Pericoloso
- 4.5 4.5 Dove | È Effettivamente Usato (OR Bitwise)
- 4.6 4.6 Regole Semplici per Principianti
- 5 5. Combinare Multiple Condizioni OR (Parentesi e Leggibilità)
- 5.1 5.1 Il Pattern Base: Catena di Condizioni OR
- 5.2 5.2 Problemi Quando le Condizioni Aumentano
- 5.3 5.3 Migliorare la leggibilità estraendo variabili booleane
- 5.4 5.4 Mescolare AND (&&) e OR (||): usare le parentesi
- 5.5 5.5 Quando le condizioni diventano complesse, estrarre un metodo
- 5.6 5.6 Riepilogo della sezione
- 6 6. Precedenza degli operatori (una fonte comune di bug)
- 7 7. Insidie Comuni (Bug Tipici e Come Evitarli)
- 8 8. Esempi Pratici per Uso Reale (Copia & Prova)
- 8.1 8.1 Validazione Input (null o Stringa Vuota)
- 8.2 8.2 Controlli di Permesso (Consentire più Ruoli)
- 8.3 8.3 Controlli di Stato (Interrompi Se Qualsiasi Condizione È Errata)
- 8.4 8.4 Condizioni Progettate per Evitare Eccezioni
- 8.5 8.5 OR con Flag a Bit (Dove | È Appropriato)
- 8.6 8.6 Riepilogo della Sezione
- 9 9. Riepilogo (Con una Tabella di Riferimento Rapido)
- 10 10. FAQ (Domande Frequenti)
1. Cos’è “OR” in Java?
In Java, OR è principalmente usato nel ramo condizionale (come le istruzioni if) per prendere una decisione del tipo “OK se almeno una delle due è vera.”
È anche un punto comune di difficoltà per i principianti, quindi è importante comprendere correttamente come differisce da AND e cosa significano i simboli.
1.1 Situazioni comuni in cui sono necessarie condizioni OR
Le condizioni OR compaiono molto frequentemente sia nello sviluppo reale sia nell’apprendimento. Per esempio:
Quando vuoi eseguire una logica se almeno una condizione è soddisfatta wp:list /wp:list
- Se è una festa o un weekend, vuoi deviare il processo
Quando vuoi verificare più condizioni di input contemporaneamente wp:list /wp:list
Se il valore è
nullo una stringa vuota, vuoi trattarlo come un erroreQuando vuoi consentire un’azione per più ruoli o stati wp:list /wp:list
Consenti l’operazione se l’utente è un admin o il proprietario
Nel linguaggio quotidiano, è come dire:
“A or B è OK.”
È essenzialmente la traduzione di quella decisione direttamente nel codice.
1.2 Il modo base per scrivere OR in Java
In Java, OR logico si scrive usando l’operatore || (due barre verticali).
if (conditionA || conditionB) {
// Runs when either conditionA or conditionB is true
}
Questo codice significa:
conditionAètrueoconditionBètrue
Se almeno una delle due è true, il codice all’interno del blocco if verrà eseguito.
1.3 “OR” è uno stile decisionale che si adatta bene al linguaggio naturale
Poiché le condizioni OR corrispondono strettamente al modo in cui ragioniamo nel linguaggio naturale, una buona scorciatoia iniziale è “tradurle in una frase”.
if (isHoliday || isWeekend) {
System.out.println("今日は休みです");
}
In inglese, questo significa:
“Se è una festa o weekend, stampa ‘Oggi è un giorno libero.’”
Come principiante, invece di:
- memorizzare i simboli così come sono
- cercare di forzarli come se fossero regole grammaticali
spesso è più veloce (e riduce gli errori) prima riformularli a parole.
1.4 Cosa spiegherà il resto di questo articolo
Molte persone che cercano “java or” sono confuse non solo su cosa significhi OR, ma anche su:
- Qual è la differenza tra
||e|? - Perché a volte il “lato destro non viene eseguito”?
- Cosa bisogna tenere d’occhio quando lo si usa con AND (
&&)? - Come scriverlo in modo sicuro nel codice reale?
In questo articolo affronteremo queste domande nell’ordine seguente:
- Basi → Meccanismo → Insidie → Uso pratico
con spiegazioni chiare e adatte ai principianti.
2. L’operatore logico OR || – Basi (Il più comune negli if)
Quando si scrivono condizioni OR in Java, l’operatore più basilare e più usato è l’operatore logico OR ||.
Se hai cercato “java or”, è sicuro dire che || è la prima cosa da capire.
2.1 Significato e ruolo di ||
L’operatore logico OR || restituisce true se almeno la condizione sinistra o quella destra è true.
ConditionA || ConditionB
Questa espressione viene valutata come segue:
| ConditionA | ConditionB | Result |
|---|---|---|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
In altre parole:
È false solo quando entrambe sono false
Altrimenti è true
È una regola molto semplice.
2.2 Uso base in un’istruzione if
Nel codice reale, || è quasi sempre usato all’interno di una condizione if.
int age = 20;
if (age >= 18 || age == 17) {
System.out.println("入場可能です");
}
Questo significa:
“L’ingresso è consentito se l’età è 18 o più o l’età è 17.”
Se una delle due condizioni è soddisfatta, il codice all’interno del blocco if verrà eseguito.
2.3 || collega espressioni booleane
Entrambi i lati di || devono essere espressioni che valutano a un valore booleano (true/false).
Esempio corretto:
if (score >= 80 || score == 100) {
// OK
}
Esempio errato:
if (score || 100) {
// Compile error
}
Non è possibile ORare numeri o stringhe direttamente.
Invece, devi combinare OR con:
- operatori di confronto (
==,>=,<, ecc.) - variabili booleane
- metodi che restituiscono booleani
per formare condizioni valide.
2.4 Quando OR rende il codice più leggibile
Usare || ti permette di raggruppare più controlli in una singola decisione.
if (status.equals("ADMIN") || status.equals("OWNER")) {
System.out.println("操作が許可されています");
}
Questo esprime chiaramente:
“Consenti l’operazione se l’utente è un amministratore o un proprietario.”
Se eviti OR e lo scrivi separatamente, diventa verboso:
if (status.equals("ADMIN")) {
System.out.println("操作が許可されています");
} else if (status.equals("OWNER")) {
System.out.println("操作が許可されています");
}
Usare OR offre vantaggi come:
- meno codice
- l’intento è ovvio a colpo d’occhio
- più facile da modificare o estendere
e così via.
2.5 Punti chiave che i principianti dovrebbero imparare per primi
A questo punto, è sufficiente ricordare questi tre punti:
||significa “OK se una delle due parti è vera”- Viene tipicamente usato nelle condizioni
if - Entrambe le parti devono essere espressioni booleane
3. Importante: || utilizza la valutazione a corto circuito
La caratteristica più importante dell’operatore logico OR || è
la valutazione a corto circuito.
Capire o meno questo può fare una grande differenza nel
scrivere codice sicuro o introdurre bug.
3.1 Cos’è la valutazione a corto circuito?
La valutazione a corto circuito significa: se il risultato è già determinato dal lato sinistro, il lato destro non viene valutato.
Per le condizioni OR, la regola è:
- Se il lato sinistro è
true→ l’intera espressione è garantita essere vera - Quindi, il lato destro non verrà eseguito
if (conditionA || conditionB) { // process }
In questo caso:
- Se
conditionAètrue→conditionBnon viene valutato
3.2 Un esempio concreto di valutazione a corto circuito
Dai un’occhiata al seguente codice:
boolean result = true || expensiveCheck();
In questo caso:
- Il lato sinistro è
true - Poiché è una condizione OR, il risultato è già determinato
Quindi il metodo expensiveCheck() non viene chiamato.
Questo non è un errore—è il comportamento corretto secondo le specifiche di Java.
3.3 Perché la valutazione a corto circuito è importante?
La valutazione a corto circuito ha grandi vantaggi pratici.
1. Evita lavoro non necessario
if (isAdmin || checkDatabase()) {
// process
}
- Se l’utente è un amministratore, non è necessario chiamare
checkDatabase() - Operazioni pesanti come l’accesso al DB possono essere saltate automaticamente
➡ Migliore performance
2. Previene eccezioni (errori)
La valutazione a corto circuito è anche molto spesso usata intenzionalmente per evitare errori.
if (user == null || user.isGuest()) {
// guest logic
}
In questo codice:
- Se
user == nullètrue user.isGuest()non viene valutato
Quindi una NullPointerException non si verificherà.
Ecco un modello pericoloso che i principianti spesso scrivono:
if (user.isGuest() || user == null) {
// Dangerous: may cause NullPointerException
}
➡ Quando ti affidi alla valutazione a corto circuito, metti sempre il controllo null a sinistra
Questo è essenzialmente una pratica comune nel codice reale.
3.4 Un errore comune con la valutazione a corto circuito
Il corto circuito è utile, ma se lo usi senza rendertene conto, può anche causare confusione.
Non mettere operazioni con “effetti collaterali” sul lato destro
if (flag || count++) {
// some process
}
In questo caso:
- Se
flagètrue count++non viene eseguito
Questo può facilmente portare a bug dove “un processo che si presumeva sempre eseguito” a volte non lo è.
3.5 Riepilogo per principianti (valutazione a corto circuito)
Punti chiave di questa sezione:
||significa se il lato sinistro è vero, il lato destro non viene valutato- Questo non è un bug—è il comportamento intenzionale di Java
- Usalo per evitare errori null e saltare lavoro costoso
- Non mettere operazioni con effetti collaterali all’interno delle condizioni
4. La Differenza Tra || e | (Il Punto di Confusione Più Comune)
Uno dei motivi principali per cui le persone si confondono quando cercano “java or” è che
|| e | sembrano simili.
Ma la conclusione è semplice: questi due sono completamente diversi in scopo e comportamento.
4.1 Capire Prima la Conclusione: Hanno Casi d’Uso Diversi
Riassumiamo la differenza in una riga:
||: operatore OR logico (per condizioni di branching, con valutazione short-circuit)|: operatore OR bitwise (per operazioni bit su numeri, senza valutazione short-circuit)
Come principiante, ricorda solo questa regola:
Negli statement if, usa fondamentalmente solo ||.
Quasi mai ti bloccherai se la segui.
4.2 La Differenza Quando Usati con Booleani
In effetti, | può essere usato anche con booleani.
Questo è esattamente ciò che lo rende confuso.
boolean a = true;
boolean b = false;
System.out.println(a || b); // true
System.out.println(a | b); // true
Se guardi solo il risultato, entrambi diventano true.
Tuttavia, il comportamento di valutazione è completamente diverso.
4.3 La Differenza Chiave: Short-Circuit vs No Short-Circuit
|| (con valutazione short-circuit)
if (a || check()) {
// process
}
aè true- Il risultato è determinato
check()non è eseguito
| (senza valutazione short-circuit)
if (a | check()) {
// process
}
- Anche se
aè true check()è sempre eseguito
Questa è la differenza decisiva.
4.4 Perché Usare | nelle Condizioni È Pericoloso
Ecco un errore comune dei principianti:
if (user != null | user.isActive()) {
// dangerous
}
Con questo codice:
- Anche se
user != nullè false user.isActive()è ancora eseguito
Di conseguenza, si verifica una NullPointerException.
La versione corretta è:
if (user != null || user.isActive()) {
// safe
}
➡ Non usare | per il branching condizionale
Memorizza questo con forza.
4.5 Dove | È Effettivamente Usato (OR Bitwise)
| è un operatore bitwise usato per la manipolazione dei bit.
int READ = 1; // 0001
int WRITE = 2; // 0010
int permission = READ | WRITE; // 0011
Questo è usato in scenari come:
- combinare flag
- gestire impostazioni usando bit
e pattern simili.
4.6 Regole Semplici per Principianti
Quando hai dubbi, usa queste regole:
- statement
if/ condizioni →|| - operazioni bit su numeri →
| - C’è quasi mai bisogno di usare
|con booleani - Se vuoi short-circuiting, usa sempre
||
Nella prossima sezione, spiegheremo
come combinare multiple condizioni OR e mantenere il tuo codice leggibile.
5. Combinare Multiple Condizioni OR (Parentesi e Leggibilità)
Nei programmi del mondo reale, le condizioni OR raramente si fermano a solo due controlli.
Molto più spesso, hai bisogno di combinare tre o più condizioni.
Questa sezione spiega la sintassi corretta e come mantenere il tuo codice leggibile mentre le condizioni crescono.
5.1 Il Pattern Base: Catena di Condizioni OR
Puoi concatenare condizioni OR usando || ripetutamente.
if (status.equals("ADMIN") || status.equals("OWNER") || status.equals("EDITOR")) {
// permission granted
}
Questo significa letteralmente:
“Se lo status è ADMIN o OWNER o EDITOR, il permesso è concesso.”
Quando il numero di condizioni è piccolo, questo va benissimo.
5.2 Problemi Quando le Condizioni Aumentano
Mentre le condizioni OR aumentano, i seguenti problemi spesso appaiono:
- Le linee diventano lunghe e difficili da leggere
- L’intento della condizione diventa poco chiaro
- Gli errori diventano più probabili durante la manutenzione
if (a || b || c || d || e) { // unclear intent }
In questi casi, dovresti migliorare la struttura piuttosto che continuare ad estendere la condizione.
5.3 Migliorare la leggibilità estraendo variabili booleane
La tecnica più semplice ed efficace è estrarre variabili booleane significative.
boolean isAdmin = status.equals("ADMIN");
boolean isOwner = status.equals("OWNER");
boolean isEditor = status.equals("EDITOR");
if (isAdmin || isOwner || isEditor) {
// permission granted
}
Questo fornisce immediatamente grandi vantaggi:
- L’intento del codice è evidente a prima vista
- Le condizioni sono facili da aggiungere o rimuovere
- È meno probabile che si verifichino bug

5.4 Mescolare AND (&&) e OR (||): usare le parentesi
Quando si mescolano condizioni OR e AND, usare sempre le parentesi.
// Recommended
if (isLogin && (isAdmin || isOwner)) {
// process
}
Senza parentesi, l’ordine di valutazione potrebbe non corrispondere al tuo intento.
// Not recommended (confusing)
if (isLogin && isAdmin || isOwner) {
// hard to understand
}
Qualsiasi condizione che non è immediatamente chiara al lettore diventa debito tecnico per il tuo futuro sé.
5.5 Quando le condizioni diventano complesse, estrarre un metodo
Se le condizioni diventano ancora più complesse, l’approccio più sicuro è estrarle in un metodo.
if (isAllowedUser(user)) {
// process
}
boolean isAllowedUser(User user) {
return user != null && (user.isAdmin() || user.isOwner());
}
Ciò offre diversi vantaggi:
- L’istruzione
ifrimane pulita - La logica diventa più facile da testare
- La logica può essere riutilizzata
5.6 Riepilogo della sezione
Quando si usano più condizioni OR, tenere a mente queste regole:
- Scomporre le condizioni man mano che crescono
- Usare sempre le parentesi quando si mescolano AND e OR
- Estrarre metodi quando la logica diventa complessa
6. Precedenza degli operatori (una fonte comune di bug)
In Java, ogni operatore ha una precedenza (ordine di valutazione) definita.
Se non la comprendi quando usi condizioni OR,
potresti introdurre bug in cui il codice non si comporta come previsto.
6.1 Precedenza di && e ||
Tra gli operatori logici, l’ordine di precedenza è:
&&(AND)||(OR)
Ciò significa che AND viene valutato prima di OR.
boolean result = false || true && false;
Questa espressione è valutata nel seguente ordine:
true && false→ falsefalse || false→ false
Il risultato finale è false.
6.2 Ordine di valutazione con le parentesi
Quando aggiungi parentesi, l’espressione racchiusa viene valutata per prima.
boolean result = (false || true) && false;
L’ordine di valutazione diventa:
false || true→ truetrue && false→ false
Il risultato è ancora false, ma il flusso di valutazione è completamente diverso.
6.3 Un fraintendimento comune nelle istruzioni if
Considera la seguente istruzione if:
if (isLogin && isAdmin || isOwner) {
// process
}
Secondo le regole di precedenza di Java, questo è interpretato come:
if ((isLogin && isAdmin) || isOwner) {
// process
}
Di conseguenza:
- L’utente potrebbe non essere loggato
- Se
isOwnerè true, il processo viene comunque eseguito
Ciò può portare a comportamenti indesiderati.
6.4 Un modo sicuro per rendere chiaro il tuo intento
Se il tuo intento è:
“L’utente è loggato, e (è un admin o un proprietario)”
allora usa sempre le parentesi:
if (isLogin && (isAdmin || isOwner)) {
// correct
}
Questo stile:
- È facile da capire per i lettori
- Non richiede di memorizzare le regole di precedenza
- È più sicuro per la manutenzione futura
6.5 Non è necessario memorizzare le regole di precedenza
Errori comuni dei principianti includono:
- Cercare di memorizzare tutte le regole di precedenza degli operatori
- Abituarsi a scrivere condizioni senza parentesi
Nello sviluppo reale, basta seguire questa regola:
“In caso di dubbio, usa sempre le parentesi.”
Questo da solo è sufficiente.
6.6 Riepilogo della Sezione
Punti chiave di questa sezione:
&&ha una precedenza più alta di||- Le parentesi sovrascrivono la precedenza
- Le condizioni poco chiare sono pericolose
- Usa le parentesi per leggibilità e sicurezza
7. Insidie Comuni (Bug Tipici e Come Evitarli)
A questo punto dovresti aver compreso le basi e il funzionamento dell’operatore OR.
Questa sezione introduce bug tipici che i principianti incontrano spesso e modi sicuri per evitarli.
La maggior parte di questi sono casi in cui penserai: “Se avessi saputo questo, avrei potuto evitarlo.”
Assicurati di rivederli almeno una volta.
7.1 Errori Causati da Ordine Errato del Controllo null
L’errore più comune è controllare null nell’ordine sbagliato.
Esempio Pericoloso
if (user.isActive() || user == null) {
// process
}
In questo codice:
- Se
userènull user.isActive()viene valutato per primo
Di conseguenza, si verifica una NullPointerException.
Esempio Corretto (Utilizzando la Valutazione a Circuito Corto)
if (user == null || user.isActive()) {
// safe
}
- Il controllo
nullè a sinistra - Se vero, il lato destro non viene valutato
➡ Quando ti affidi alla valutazione a circuito corto, metti sempre le condizioni sicure a sinistra
Questo principio è estremamente importante non solo per le condizioni OR, ma anche per le condizioni AND.
7.2 Uso Errato di | (La Valutazione a Circuito Corto Non Si Applica)
Poiché hanno un aspetto simile, è facile usare accidentalmente | invece di ||.
if (user != null | user.isActive()) {
// source of bugs
}
In questo caso:
- Anche se
user != nullè falso user.isActive()viene sempre eseguito
➡ Se user è null, si verifica immediatamente un errore.
Usa sempre || nei rami condizionali.
Rendilo un’abitudine rigorosa.
7.3 Scrivere Operazioni con Effetti Collaterali Dentro le Condizioni
È anche pericoloso scrivere operazioni che modificano lo stato dentro le condizioni.
if (isValid || count++) {
// some process
}
- Se
isValidè vero count++non viene eseguito
Se supponi che “count incrementi sempre”, questo diventa un bug sottile e difficile da trovare.
Soluzione: Separare le Condizioni dalle Azioni
if (isValid) {
count++;
}
Oppure:
count++;
if (isValid) {
// process
}
➡ Usa le condizioni solo per le decisioni
7.4 Condizioni OR Poco Leggibili Portano a Bug Futuri
La seguente condizione può funzionare, ma è pericolosa:
if (a || b && c || d && e) {
// unclear intent
}
- La precedenza non è intuitiva
- È facile romperla durante la manutenzione
Esempio Migliorato
boolean condition1 = a || b;
boolean condition2 = c || d;
if (condition1 && condition2) {
// much clearer
}
7.5 Riepilogo della Sezione
La maggior parte dei bug legati a OR rientrano in queste quattro categorie:
- Ordine errato del controllo null
- Confusione tra
|e|| - Scrivere effetti collaterali dentro le condizioni
- Lasciare condizioni illeggibili così come sono
Evitare questi da solo ti avvicinerà molto a codice Java sicuro e leggibile.
8. Esempi Pratici per Uso Reale (Copia & Prova)
Questa sezione introduce esempi pratici di condizioni OR comunemente usati nello sviluppo reale. Ogni esempio è scritto in modo che i principianti possano copiarlo e provarlo direttamente.
8.1 Validazione Input (null o Stringa Vuota)
Quando si gestiscono input utente o dati esterni, controllare sia null che stringhe vuote è estremamente comune.
if (text == null || text.isEmpty()) {
System.out.println("Please enter a value");
}
- Se
text == nullè vero text.isEmpty()non viene valutato
➡ Un modello sicuro usando la valutazione a circuito corto.
8.2 Controlli di Permesso (Consentire più Ruoli)
Usa OR quando consenti un’azione per più ruoli.
if (isAdmin || isOwner) {
// allowed users only
}
Puoi naturalmente estendere questo man mano che i ruoli aumentano:
if (isAdmin || isOwner || isEditor) {
// permission granted
}
8.3 Controlli di Stato (Interrompi Se Qualsiasi Condizione È Errata)
Le condizioni OR sono anche ideali per i casi in cui
se qualsiasi stato singolo è errato, l’elaborazione dovrebbe fermarsi.
if (isTimeout || isError || isDisconnected) {
return;
}
- Alta leggibilità
- Il ritorno anticipato mantiene la logica pulita
➡ Un pattern molto comune nel mondo reale.
8.4 Condizioni Progettate per Evitare Eccezioni
Usa OR per chiamare in modo sicuro i metodi in base allo stato dell’oggetto.
if (user == null || user.isGuest()) {
showGuestPage();
}
- Metti il controllo di null a sinistra
- Il lato destro viene eseguito solo quando è sicuro
Questa è una combinazione classica di OR e valutazione a cortocircuito.
8.5 OR con Flag a Bit (Dove | È Appropriato)
Ci sono casi in cui hai bisogno di OR bitwise, non OR logico.
int READ = 1; // 0001
int WRITE = 2; // 0010
int EXEC = 4; // 0100
int permission = READ | WRITE;
Questo pattern viene usato per combinare:
- flag di configurazione
- permessi
- flag di stato
In questi casi, | è l’operatore corretto.
8.6 Riepilogo della Sezione
Quando scrivi condizioni OR in progetti reali, tieni a mente queste idee:
- Metti i controlli di null a sinistra
- Raggruppa condizioni correlate con OR
- Usa ritorni anticipati per semplificare la logica
- Mantieni le condizioni sicure, semplici e prive di effetti collaterali
9. Riepilogo (Con una Tabella di Riferimento Rapido)
Finora, abbiamo trattato il concetto e l’uso delle condizioni OR in Java in dettaglio.
Per concludere, organizziamo i punti chiave necessari nello sviluppo reale.
9.1 Riferimento Rapido: || vs |
| Operator | Primary Purpose | Short-Circuit | Typical Usage |
|---|---|---|---|
|| | Logical OR | Yes | Conditional branching (if) |
| | Bitwise OR | No | Bit flags, numeric bit operations |
La regola decisionale è molto semplice:
- Ramificazione condizionale →
|| - Manipolazione di bit →
|
C’è quasi mai un buon motivo per usare | in condizioni booleane.
9.2 Regole Fondamentali per Scrivere Condizioni OR
Per scrivere condizioni OR sicure in Java, tieni a mente le seguenti regole:
- Metti sempre i controlli di null a sinistra
- Scrivi il codice assumendo la valutazione a cortocircuito
- Non mettere mai effetti collaterali all’interno delle condizioni
- Suddividi o estrai metodi quando le condizioni diventano complesse
- Usa sempre le parentesi quando mescoli AND e OR
Se segui solo queste regole, anche i principianti possono scrivere codice Java sicuro e a basso rischio.
9.3 La Conclusione in Una Frase che i Principianti Dovrebbero Ricordare
In una frase, la conclusione di questo articolo è:
In Java, usa
||per le condizioni OR, comprendi la valutazione a cortocircuito e scrivi le condizioni in un ordine sicuro.
Non è necessario memorizzare ogni regola.
Se comprendi perché le condizioni sono scritte in un certo ordine, il codice corretto seguirà naturalmente.
10. FAQ (Domande Frequenti)
10.1 Posso scrivere OR come or in Java?
No, non puoi.
In Java, le condizioni OR sono sempre scritte usando simboli.
- OR logico:
|| - OR bitwise:
|
La parola chiave or non esiste in Java.
10.2 Quale dovrei usare: || o |?
Usa sempre || nelle istruzioni if e nella ramificazione condizionale.
| è per operazioni bitwise.
Usarlo nelle condizioni disabilita la valutazione a cortocircuito e spesso causa bug.
10.3 Perché il lato destro di || a volte non viene eseguito?
Perché || usa la valutazione a cortocircuito.
- Se il lato sinistro è
true, il risultato è già determinato - Il lato destro non viene valutato
Questo è un comportamento corretto secondo la specifica di Java.
10.4 Come viene valutato a && b || c?
Poiché && ha una precedenza più alta di ||, viene valutato come:
(a && b) || c
Se l’intento non è ovvio, aggiungi sempre le parentesi.
10.5 È OK usare | con booleani?
È sintatticamente valido, ma fortemente sconsigliato.
- Nessuna valutazione a cortocircuito
- Minore leggibilità
- Molto più facile introdurre bug
A meno che tu non abbia un motivo molto specifico, usa sempre || per la logica booleana.
10.6 Quando dovrei usare OR bitwise (|)?
I casi d’uso tipici includono:
- Gestione dei flag di permessi
- Combinazione dei valori di configurazione
- Rappresentazione dello stato usando bit
Questi sono casi d’uso completamente diversi dal branching condizionale.

