Previous Next Up Index Contents

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, mais si on les utilise avec précaution, ils fournissent des solutions très élégantes:

Exemple

printf("Vous avez %i carte%c \n", N, (N==1) ? ' ' : 's');

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!


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber