Arduino - Opérateur conditionnel? :

L'opérateur conditionnel? : est le seul opérateur ternaire de C.

? : Syntaxe des opérateurs conditionnels

expression1 ? expression2 : expression3

Expression1 est évaluée en premier. Si sa valeur est true, alors expression2 est évaluée et expression3 est ignorée. Si expression1 est évaluée comme fausse, alors expression3 est évaluée et expression2 est ignorée. Le résultat sera une valeur de expression2 ou expression3 selon lequel d'entre eux est évalué comme True.

L'opérateur conditionnel s'associe de droite à gauche.

Example

/* Find max(a, b): */
max = ( a > b ) ? a : b;
/* Convert small letter to capital: */
/* (no parentheses are actually necessary) */
c = ( c >= 'a' && c <= 'z' ) ? ( c - 32 ) : c;

Règles de l'opérateur conditionnel

  • expression1 doit être une expression scalaire; expression2 et expression3 doivent obéir à l'une des règles suivantes.
  • Les deux expressions doivent être de type arithmétique.
  • expression2 et expression3 sont soumises aux conversions arithmétiques habituelles, qui déterminent le type résultant.
  • > Les deux expressions doivent être de type vide. Le type résultant est nul.