En C, il existe un opérateur conditionnel ternaire ?:
if...else
).La syntaxe générale de cet opérateur est :
(test) ? expressionVrai : expressionFaux ;
Cet opérateur est principalement utilisé lorsque l'on souhaite affecter des valeurs différentes en fonction du test.
// Si x est différent de 0, n vaut 10, sinon n vaut 20
n = (x != 0) ? 10 : 20;
L'exemple ci-dessous affecte la variable a
à max
si a
est supérieur à b
, sinon,
c'est la variable b
. On peut résumer cette instruction en une phrase :
La variable
max
contiendra la plus grande valeur entrea
etb
:
max = (a > b) ? a : b;
Cette instruction peut s'écrire avec un if...else
:
if (a>b)
max = a;
else
max = b;
Écrire un programme qui demande à l'utilisateur de saisir le nombre d'enfants. Ensuite, le programme affiche : Vous avez 7 enfants. Le mot enfant doit être au pluriel si le nombre saisi est strictement supérieur à 1.
int nbEnfants;
// Saisie le nombre d'enfants
printf ("Combien d'enfants ? ");
scanf ("%d", &nbEnfants);
// Affiche le nombre d'enfants
printf ("Vous avez %d enfant%c.\n", nbEnfants, /* COMPLETEZ ICI */ );
Astuce : le code ASCII zéro n'affiche rien.
Voici l'affichage attendu :
Combien d'enfants ? 1
Vous avez 1 enfant.
Combien d'enfants ? 7
Vous avez 7 enfants.
Qu'affiche le code suivant ?
int n = (2>3) ? 0 : 1;
putchar ('%d', n);
Qu'affiche le code suivant ?
int n=(2<3)?0:1;
putchar ('%d', n);
Quelle instruction est équivalente au code ci-dessous ?
if (x%2)
c = 'p';
else
c = 'i';