L'operatore ternario
condition ? a : b
L'operatore ternario è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Cos'è l'operatore ternario?
L'operatore ternario è l'unico operatore di Java che accetta tre operandi. È un modo compatto per scegliere tra due valori in base a una condizione.
La sua struttura è: condition ? valueIfTrue : valueIfFalse.
Produce un valore, quindi può assegnarlo o passarlo direttamente.
int age = 20;
String status = age >= 18 ? "adult" : "minor";Le tre parti
La prima parte è una condizione booleana. Il carattere ? la separa dai risultati.
Se la condizione è vera, l'espressione restituisce la parte prima di :. Se è falsa, restituisce la parte dopo :.
Viene valutato effettivamente un solo ramo dei due.
int score = 45;
String result = score >= 50 ? "pass" : "fail";Un esempio completo eseguibile
Ecco un programma completo che stampa un'etichetta in base a un numero.
La condizione n % 2 == 0 determina se usare "even" o "odd".
public class Main {
public static void main(String[] args) {
int n = 7;
String parity = n % 2 == 0 ? "even" : "odd";
System.out.println(parity);
}
}È un'espressione
A differenza di un'istruzione if, un ternario è un'espressione: ha un valore.
Ciò significa che può usarlo all'interno di chiamate a metodi, istruzioni return e assegnazioni, dove un'istruzione non sarebbe adatta.
public class Main {
public static void main(String[] args) {
int a = 9, b = 4;
System.out.println("Max is " + (a > b ? a : b));
}
}Scegliere tra numeri
Non è necessario che entrambi i rami siano stringhe. Qui il ternario sceglie il maggiore tra due valori int.
Il risultato è un int che può memorizzare e riutilizzare.
public class Main {
public static void main(String[] args) {
int x = 12, y = 30;
int max = x > y ? x : y;
System.out.println(max);
}
}Entrambi i rami devono avere tipi compatibili
Java deve conoscere il tipo dell'intera espressione, quindi i due rami devono avere tipi compatibili.
Se un ramo è un int e l'altro una String, il codice non verrà compilato.
Mantenga entrambi i lati dello stesso tipo di valore.
boolean ok = true;
// valid: both ints
int code = ok ? 200 : 404;
// invalid: int vs String would not compileRestituire un valore da un metodo
I ternari sono particolarmente utili nelle istruzioni return: sostituiscono un blocco if/else di quattro righe con una sola riga.
Il metodo seguente restituisce il valore assoluto di un numero.
public class Main {
static int abs(int n) {
return n < 0 ? -n : n;
}
public static void main(String[] args) {
System.out.println(abs(-8));
}
}Usarlo nell'output
Può inserire un ternario direttamente all'interno di una chiamata di stampa.
Lo racchiuda tra parentesi quando concatena stringhe, in modo che ? e : vengano raggruppati prima che + unisca il testo.
public class Main {
public static void main(String[] args) {
int items = 0;
System.out.println("Cart: " + (items == 0 ? "empty" : "has items"));
}
}Scegliere un saluto
Un uso comune consiste nel selezionare uno tra due messaggi.
La condizione controlla un flag booleano e il ternario sceglie il testo del saluto corrispondente.
public class Main {
public static void main(String[] args) {
boolean morning = true;
String greet = morning ? "Good morning" : "Hello";
System.out.println(greet);
}
}Precedenza degli operatori
Il ternario ha una precedenza molto bassa, quindi al suo interno le operazioni aritmetiche e i confronti vengono eseguiti prima.
In a + b > 10 ? "big" : "small", Java calcola a + b, confronta il risultato e poi sceglie un ramo.
Aggiunga parentesi quando lo combina con + per concatenare stringhe.
int a = 6, b = 7;
String size = a + b > 10 ? "big" : "small";Assegnare in base all'input
I ternari sono ideali per inizializzare una variabile in un unico passaggio.
Qui una tariffa viene impostata a zero per i membri e a un importo fisso negli altri casi.
public class Main {
public static void main(String[] args) {
boolean isMember = false;
double fee = isMember ? 0.0 : 9.99;
System.out.println(fee);
}
}Verifica rapida
Verifichi la Sua comprensione della sintassi ternaria.
Riepilogo
L'operatore ternario condition ? a : b è l'espressione condizionale compatta di Java, composta da tre parti.
Restituisce un valore, valuta un solo ramo e richiede tipi compatibili su entrambi i lati.
Lo usi per assegnare, restituire o stampare in modo chiaro uno tra due valori.
Domande Frequenti
La lezione «L'operatore ternario» è gratuita?
Sì — il testo completo di «L'operatore ternario» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «L'operatore ternario»?
condition ? a : b Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «L'operatore ternario»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- L'operatore ternario
- Annidare gli operatori ternari
- Ternario e if/else
- Problemi di leggibilità