Spiegazione dell'operatore ternario in C

I programmatori utilizzano l' operatore ternario per il processo decisionale al posto di istruzioni condizionali if e else più lunghe .

L'operatore ternario accetta tre argomenti:

  1. Il primo è un argomento di confronto
  2. Il secondo è il risultato di un vero confronto
  3. Il terzo è il risultato di un falso confronto

È utile pensare all'operatore ternario come a una scorciatoia o scrivere un'istruzione if-else. Ecco un semplice esempio di processo decisionale utilizzando if e else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Questo esempio richiede più di 10 righe, ma non è necessario. Puoi scrivere il programma sopra in sole 3 righe di codice usando un operatore ternario.

Sintassi

condition ? value_if_true : value_if_false

L'istruzione valuta value_if_truese conditionè soddisfatta e value_if_falsealtrimenti.

Ecco l'esempio sopra riscritto per utilizzare l'operatore ternario:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

L'output dell'esempio sopra dovrebbe essere:

10

cè impostato uguale a a, perché la condizione a < bera vera.

Ricorda che gli argomenti value_if_truee value_if_falsedevono essere dello stesso tipo e devono essere espressioni semplici anziché istruzioni complete.

Gli operatori ternari possono essere annidati proprio come le istruzioni if-else. Considera il codice seguente:

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 utilizzando 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 set di codice sopra dovrebbe essere:

3