Retour Suite Index

5.4. Les opérateurs conditionnels

Le langage C possède une paire d'opérateurs un peu exotiques qui peut être utilisée comme alternative à if - else et qui a l'avantage de pouvoir être intégrée dans une expression:

Les opérateurs conditionnels


<expr1> ? <expr2> : <expr3>
* Si <expr1> fournit une valeur différente de zéro,
alors la valeur de <expr2> est fournie comme résultat

* Si <expr1> fournit la valeur zéro,
alors la valeur de <expr3> est fournie comme résultat
Exemple

La suite d'instructions


   if (A>B) 
      MAX=A;
   else
      MAX=B;
peut être remplacée par:

   MAX = (A > B) ? A : B;

Conseil

Employés de façon irréfléchis, les opérateurs conditionnels peuvent nuire à la lisibilité d'un programme.


(N==1) ? ((N==2) ? N++ : N+=2) : (N--)

Attention!

Les règles de conversion de types s'appliquent aussi aux opérateurs conditionnels ? : Ainsi, pour un entier N du type int et un rationnel F du type float, l'expression


   (N>0) ? N : F 
va toujours fournir un résultat du type float, n'importe si N est plus grand ou plus petit que zéro!

Retour Suite Index