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