Uproszczona instrukcja if

0

Witam,
Mam oto problem z uzyciem takie konstrukcji
a ? b : c
jesli a, to bo, else c.

a ? printf("1\n"), printf("2\n") : (printf("3n"), printf("4"));
dziala dobrze i jest rownowazne z:
if(a)
{
printf("1\n");
printf("2\n");
}
else
{
printf("3\n");
printf("4\n");
}

Sprawa sie troche komplikuje w przypadku, kiedy chce zrobic cos takiego:
if(a)
{
printf("1");
return 0;
}
else
return 0;

Tak oto to proboje zrobic:
a ? printf("1\n"), return 0 : return 0;

Dostaje taki oto blad:
6: error: parse error before "return".
Na czym ten blad dokladniej polega? Bo ja niestety nie dostrzegam problemu.

Pozdrawiam,
apacz

0

To nie jest uproszczona instrukcja if, tylko operator warunkowy i ma ono postac:
wyr1 ? wyr2 : wyr3
calosc ma wartosc wyr2, jesli wyr1 jest prawda. W przeciwnym wypadku ma wartosc wyr3.

Proponuje jakas ksiazke/kurs dotyczacy C

0

z tego co wiem, konstrukcja ?: dziala faktycznie tylko na wartosciach, tak jak pisal kolega wyzej

0

Nie można napisać

if (a) {
...
 

Instrukcja warunkowa musi coś sprawdzać np:

if (a == 10) {
...

czyli:jeżeli a ma 10 to coś zrób.
Poczytaj troche więcej kursów <font size="6">!!!</span>

0

Nie można napisać

if (a) {
...
 

iyya24 mozna tak napisac... if(a) jest rownowazne if(a != 0), tak samo jak sie pisze if(!a) jest rownowazne if (a==0);

1 użytkowników online, w tym zalogowanych: 0, gości: 1