Pojasnjen ternarni operater v C

Programerji uporabljajo ternarni operator za odločanje namesto daljših pogojnih stavkov if in else .

Ternarni operater sprejme tri argumente:

  1. Prvi je primerjalni argument
  2. Drugi je rezultat resnične primerjave
  3. Tretji je rezultat lažne primerjave

Pomaga, da o ternarnem operaterju razmišljamo kot o kratkem besedilu ali pri pisanju izjave if-else. Tu je preprost primer odločanja z uporabo if in else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Ta primer ima več kot 10 vrstic, vendar to ni potrebno. Zgornji program lahko v tri vrstice kode napišete s pomočjo ternarnega operaterja.

Sintaksa

condition ? value_if_true : value_if_false

Izjava oceni, value_if_trueali conditionje izpolnjeno, in value_if_falsesicer.

Tu je zgornji primer, napisan za uporabo ternarnega operatorja:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

Rezultat zgornjega primera mora biti:

10

cje enak a, ker je a < bbil pogoj resničen.

Ne pozabite, da so argumenti value_if_truein value_if_falsemorajo biti iste vrste, in morajo biti enostavni izrazi namesto popolne izjave.

Ternarne operatorje je mogoče ugnezditi tako kot stavke if-else. Upoštevajte naslednjo kodo:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Tu je zgornja koda, napisana z uporabo ugnezdenega ternarnega operatorja:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

Rezultat obeh naborov zgornje kode mora biti:

3