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
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
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
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");
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");
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
17 mai 2007 à 14:53
merci bien pour ton explication :)
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
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
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; }