Syntaxe if en C

Résolu
InAme19 Messages postés 573 Statut Membre -  
InAme19 Messages postés 573 Statut Membre -
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?
Configuration: Linux
Firefox 3.0.15

5 réponses

  1. Ah que coucou!
     
    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
  2. InAme19 Messages postés 573 Statut Membre 63
     
    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
  3. InAme19 Messages postés 573 Statut Membre 63
     
    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
  4. Ah que coucou!
     
    if est une instruction
    ? est un opérateur
    au même titre que + ou &&
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. InAme19 Messages postés 573 Statut Membre 63
     
    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