Explication de l'opérateur ternaire en C

Les programmeurs utilisent l' opérateur ternaire pour la prise de décision au lieu d' instructions conditionnelles if et else plus longues .

L'opérateur ternaire prend trois arguments:

  1. Le premier est un argument de comparaison
  2. Le second est le résultat d'une vraie comparaison
  3. Le troisième est le résultat d'une fausse comparaison

Cela aide à penser à l'opérateur ternaire comme à un raccourci ou à écrire une instruction if-else. Voici un exemple simple de prise de décision utilisant if et else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Cet exemple prend plus de 10 lignes, mais ce n'est pas nécessaire. Vous pouvez écrire le programme ci-dessus en seulement 3 lignes de code en utilisant un opérateur ternaire.

Syntaxe

condition ? value_if_true : value_if_false

L'instruction évalue value_if_truesi conditionest satisfaite, et value_if_falsesinon.

Voici l'exemple ci-dessus réécrit pour utiliser l'opérateur ternaire:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

La sortie de l'exemple ci-dessus doit être:

10

cest égal à a, car la condition a < bétait vraie.

N'oubliez pas que les arguments value_if_trueet value_if_falsedoivent être du même type et qu'il s'agit d'expressions simples plutôt que d'instructions complètes.

Les opérateurs ternaires peuvent être imbriqués comme les instructions if-else. Considérez le code suivant:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Voici le code ci-dessus réécrit à l'aide d'un opérateur ternaire imbriqué:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

La sortie des deux ensembles de code ci-dessus doit être:

3