Syntaxe if en C

Résolu/Fermé
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 - 13 déc. 2009 à 10:23
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 - 13 déc. 2009 à 10:39
Bonjour,

voilà j'aimerai utiliser un if de la manière la plus réduite possible.

J'ai donc écrit cela:

int trouve = 0;
(trouve) ? return 1 : return 0;


mais le compilateur me dit : expected expression before ‘return’

alors j'ai essayé :
int trouve = 0;
(trouve==1) ? return 1 : return 0;

mais j'ai la même erreur.

Est il possible d'utiliser la syntaxe " ? : " pour un if en C?

5 réponses

Ah que coucou!
13 déc. 2009 à 10:26
RTFM!

le ? est un opérateur ternaire !

la syntaxe serait plutot return trouve ? 1 : 0;
mais ce serait plus simple de faire return trouve;
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
13 déc. 2009 à 10:27
hum pourtant d'après cette page :https://www.commentcamarche.net/contents/186-langage-c-les-structures-conditionnelles
c'est possible d'utiliser cette syntaxe... alors où est mon erreur?
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
13 déc. 2009 à 10:29
Ah oui ok ^^

merci.

j'ai mis cet exemple pour faire plus simple, je ne l'utilise pas exactement comme cela dans mon code ;)
sinon oui j'aurai fais return trouve.

merci pour ton aide!
0
Ah que coucou!
13 déc. 2009 à 10:30
if est une instruction
? est un opérateur
au même titre que + ou &&
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
13 déc. 2009 à 10:39
Oui je savais que ? était un opérateur.

mais dans ma tête : (condition) ? instruction si vrai : instruction si faux , je m'étais dit que return 1 était une instruction... d'habitude je ne l'utilise pas avec return alors ça marche.

genre : (trouve) ? printf("1") : printf("0");

juste une petite confusion avec le return...
0