Stavo leggendo un codice per un algoritmo di floyd warshall quando mi sono trovato di fronte ad un operatore che è, per mia inesperienza, piu o meno sconosciuto e non ne capisco bene il funzionamento....

le variabili sono delle semplici double.

return (d_ij <= d_ik + d_kj) ? d_ij : d_ik + d_kj;


cosa significa?

che il valore viene ritornato solo se d_ij è minore o uguale? in tal caso si potrebbe scrivere anche

if(d_ij<=d_ik + d+kj) return d_ij

è corretto?