L'opérateur ? : retourne une valeur en fonction d'une condition. Il se présente selon la structure suivante : condition ? expression1 : expression2 où expression1 est retourné si condition est vraie et expression2 si condition s'avère être fausse. Cette syntaxe concise est très pratique, et permet d'éviter des blocs conditionnels if :
int c;
//...
if (a < b)
c += a;
else
c += b;
Ce code peut être remplacé par le suivant :
int c;
c += a < b ? a : b;
On voit qu'on évite des lignes de code inutiles et que la lisibilité n'en est pas amoindrie.