Operatore Condizionale in Java
- L'operatore condizionale ternario
?
in Java consente di semplificare le istruzioni condizionali, restituendo un valore basato su una condizione booleana. - Il risultato dell'operatore ternario è il valore dell'espressione valutata, e le due espressioni devono restituire lo stesso tipo o un tipo compatibile.
L'operatore condizionale ternario
Java include un operatore speciale ternario (a tre vie) che può sostituire alcuni tipi di istruzioni if-then-else. Questo operatore è ?
. All'inizio può sembrare poco intuitivo, ma, una volta padroneggiato, ?
può essere utilizzato con grande efficacia. L'operatore ?
ha la seguente forma generale:
espressione1 ? espressione2 : espressione3
Qui, espressione1
può essere qualunque espressione che restituisca un valore booleano.
Se espressione1
è true
, viene valutata espressione2
; altrimenti viene valutata espressione3
.
Il risultato dell'operazione ?
è il valore dell'espressione valutata. espressione2
ed espressione3
devono restituire lo stesso tipo (o un tipo compatibile), che non può essere void
.
Ecco un esempio d'impiego dell'operatore ?
:
rapporto = denominatore == 0 ? 0 : numeratore / denominatore;
Quando Java valuta quest'espressione di assegnazione, prende innanzitutto in considerazione l'espressione posta a sinistra del punto interrogativo.
Se denominatore
è uguale a zero, viene valutata l'espressione compresa tra il punto interrogativo e i due punti, e il suo valore diventa quello dell'intera espressione ?
.
Se denominatore
è diverso da zero, viene valutata l'espressione dopo i due punti, il cui valore diventa quello dell'intera espressione ?
.
Il risultato prodotto dall'operatore ?
viene quindi assegnato a rapporto
.
Di seguito un programma che dimostra l'operatore ?
, usandolo per ottenere il valore assoluto di una variabile:
// Dimostrazione di ?.
class Ternario {
public static void main(String[] argomenti) {
int valore, assoluto;
valore = 10;
assoluto = valore < 0 ? -valore : valore; // ottiene il valore assoluto di valore
System.out.print("Valore assoluto di ");
System.out.println(valore + " è " + assoluto);
valore = -10;
assoluto = valore < 0 ? -valore : valore; // ottiene il valore assoluto di valore
System.out.print("Valore assoluto di ");
System.out.println(valore + " è " + assoluto);
}
}
L'output generato dal programma è il seguente:
Valore assoluto di 10 è 10
Valore assoluto di -10 è 10