Opérateur ternaire
Fait partie de la section Fundamentals du Journey C de Coddy — leçon 29 sur 63.
L'opérateur conditionnel ternaire est une syntaxe raccourcie pour exprimer une instruction if-else en une seule ligne.
La syntaxe est :
condition ? value_if_true : value_if_false;Regardons un exemple. Tout d'abord, voici une instruction if-else traditionnelle :
int max;
if (a > b) {
max = a;
} else {
max = b;
}Maintenant, réécrivons-le en utilisant l'opérateur ternaire :
int max = (a > b) ? a : b;Dans cet exemple :
a > best la condition- Si la condition est vraie,
aest retourné - Si la condition est fausse,
best retourné
L'opérateur ternaire peut également être imbriqué, mais cela peut rendre le code plus difficile à lire :
int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);Défi
FacileCréez un programme qui vérifie si un nombre est positif, négatif ou nul en utilisant l'opérateur conditionnel. Le programme doit :
- Prendre un entier en entrée de la part de l'utilisateur.
- Utiliser l'opérateur conditionnel pour déterminer si le nombre est positif, négatif ou nul.
- Afficher le résultat au format :
"The number is [positive/negative/zero]".
Aide-mémoire
L'opérateur conditionnel ternaire fournit un moyen abrégé d'exprimer une instruction if-else sur une seule ligne.
Syntaxe :
condition ? value_if_true : value_if_false;Exemple comparant un if-else traditionnel avec l'opérateur ternaire :
// if-else traditionnel
int max;
if (a > b) {
max = a;
} else {
max = b;
}
// Opérateur ternaire
int max = (a > b) ? a : b;L'opérateur ternaire peut être imbriqué, bien que cela réduise la lisibilité :
int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);Essayez vous-même
#include <stdio.h>
int main() {
int number;
scanf("%d", &number);
// Écrivez votre code ci-dessous
char* result =
printf("The number is %s\n", result);
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Structures de contrôle
L'instruction IfIf - ElseElse-IfSwitch CaseOpérateur ternaireDéfi récapitulatifIf - Else imbriqués2Variables
Types de donnéesEntiersFloat - DoubleCaractèresBooléensConstantesLes bases de printfRègles de nommage des variablesType Casting Partie 1Type Casting Partie 2Défi récapitulatif3Opérateurs
Opérateurs arithmétiquesOpérateur moduloIncrémentation/DécrémentationOpérateurs d'affectationOpérateurs relationnelsOpérateurs logiques - Partie 1Opérateurs logiques - Partie 2Opérateurs logiques - Partie 3Défi récapitulatif