Articolo originale: Ternary Operator in C Explained
I programmatori usano l'operatore ternario per prendere decisioni al posto delle più lunghe espressioni condizionali if ed else.
L'operatore ternario accetta tre argomenti:
- Il primo è l'argomento di comparazione
- Il secondo è il risultato per una comparazione vera
- Il terzo è il risultato per una comparazione falsa
Potresti pensare all'operatore ternario come a un modo breve per scrivere una espressione if-else. Ecco un piccolo esempio decisionale usando if e else:
int a = 10, b = 20, c;
if (a < b) {
c = a;
}
else {
c = b;
}
printf("%d", c);
Questo esempio occupa più di 10 righe, ma non è necessario che sia così lungo. Puoi scrivere questo programmino in tre righe di codice usando un operatore ternario.
Sintassi
condizione ? valore_se_vero : valore_se_falso
L'espressione diventa valore_se_vero
se condizione
è vera, e valore_se_falso
altrimenti.
Ecco l'esempio sopra riscritto usando l'operatore ternario:
int a = 10, b = 20, c;
c = (a < b) ? a : b;
printf("%d", c);
L'output dell'esempio sarà:
10
c
prende il valore di a
, perché la condizione a < b
è vera.
Ricorda che gli argomenti valore_se_vero
e valore_se_falso
devono essere dello stesso tipo e possono essere solo espressioni semplici.
Gli operatori ternari possono essere annidati proprio come le espressioni if-else. Considera il seguente codice:
int a = 1, b = 2, ans;
if (a == 1) {
if (b == 2) {
ans = 3;
} else {
ans = 5;
}
} else {
ans = 0;
}
printf ("%d\n", ans);
Ecco il codice sopra riscritto usando un operatore ternario annidato:
int a = 1, b = 2, ans;
ans = (a == 1 ? (b == 2 ? 3 : 5) : 0);
printf ("%d\n", ans);
L'output di entrambi i codici qui sopra è:
3