L'operateur de condition ?:

Résolu/Fermé
yassienrt Messages postés 26 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 octobre 2010 - 17 mai 2007 à 14:27
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 17 mai 2007 à 15:07
bonjour,
je cherche un exemple d'utilisation de l'operateur ?: et sa maniere d'utilisation??
merci bien

3 réponses

dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
17 mai 2007 à 14:48
En C ?
https://c.developpez.com/cours/bernard-cassagne/node99.php#SECTION00927100000000000000

Opérateur conditionnel:

expression1 ? expression2 : expression3

Sémantique :

expression1 est évaluée et doit délivrer une valeur de type entier. Si cette valeur est :

- non nulle, expression2 est évaluée et le résultat est la valeur de l'expression conditionnelle.
- nulle, expression3 est évaluée et le résultat est la valeur de l'expression conditionnelle.

Exemples
Cet opérateur permet de remplacer une instruction if :

max = a > b ? a : b;

On peut utiliser cet opérateur en cascade, mais la lisibilité en souffre :

printf("i est %s",i < 0 ? "negatif\n" : i > 0 ? "positif\n" : "nul\n");
0
yassienrt Messages postés 26 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 5 octobre 2010 1
17 mai 2007 à 14:53
merci bien pour ton explication :)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
17 mai 2007 à 15:07
Salut,


On peut utiliser cet opérateur en cascade, mais la lisibilité en souffre :

En effet, mais ce n'est pas le langage qui donne la lisibilité (sauf les limites imposées) mais la façon de l'écrire.

On peu écrire comme ça, et la lisibilité ne souffre pas
#include<stdio.h>

int main ()
{
  int i = 5;
  printf ("i est %s", i < 0 ? "negatif\n" :
                      i > 0 ? "positif\n" :
                      "nul\n");
  return 0;
}
0