PROGRAMMIAMO
C++ - Operatore ternario

L'operatore ternario '?'

L'operatore ternario '?' è una forma sintetica dell'istruzione if...else. Facciamo subito un esempio per capire come si usa. Consideriamo le seguenti istruzioni:

if (alfa > beta)
    max = alfa;
else
    max = beta;

Usando l'operatore '?' possiamo riscrivere le istruzioni precedenti nel seguente modo:

max = (alfa > beta) ? alfa : beta;

Le parentesi tonde intorno alla condizione sono opzionali, ma migliorano la leggibilità del codice. In altre parole, avremmo potuto anche scrivere:

max = alfa > beta ? alfa : beta;

La precedente istruzione in realtà è composta da due istruzioni messe insieme (come accade spesso nel linguaggio C). Da una parte abbiamo un'assegnazione "max = " e dall'altro lato dell'uguale abbiamo un'espressione che utilizza l'operatore '?'. Dunque la parte che utilizza l'operatore ternario è:

(alfa > beta) ? alfa : beta;

Il significato è il seguente: se alfa è maggiore di beta, l'espressione assume il valore alfa; altrimenti assume il valore beta. L'operatore '?' si chiama ternario perché opera su tre termini ed esattamente:

condizione1 ? espressione2 : espressione3;

Come si vede dal nostro esempio, l'operatore '?' non si usa mai da solo, ma insieme ad una assegnazione o ad altre istruzioni.

Esso può risultare comodo per inizializzare una variabile (nel nostro esempio max) con due valori diversi, a seconda del risultato di una certa condizione. E' molto usato dai programmatori in sostituzione dell'if...else per la sua sinteticità, ma è anche deprecato da alcuni perché rende la lettura e la comprensione del codice più difficile. Usarlo oppure no è insomma una questione di gusti personali...

 

 

link precedente - successiva link

Sito realizzato in base al template offerto da

http://www.graphixmania.it