Kolmepoolne operaator C-s

Programmeerijad kasutavad kolmekomponendiliste operaator otsuste tegemisel asemel enam kui ja teine olekuid.

Kolmepoolne operaator võtab vastu kolm argumenti:

  1. Esimene on võrdlusargument
  2. Teine on tõelise võrdluse tulemus
  3. Kolmas on vale võrdluse tulemus

See aitab mõelda kolmekomponendilisest operaatorist kui lühitekstist või kui öelda muu avalduse kirjutamisest. Siin on lihtne otsustusprotsessi näiteks kasutades , kui ja teine :

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

See näide võtab rohkem kui 10 rida, kuid see pole vajalik. Kolmikoperaatori abil saate ülaltoodud programmi kirjutada vaid 3 koodireaga.

Süntaks

condition ? value_if_true : value_if_false

Avalduses hinnatakse, value_if_truekas see conditionon täidetud ja value_if_falsemuul viisil.

Siin on ülaltoodud näide, mis on kolmepoolse operaatori kasutamiseks ümber kirjutatud:

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

Ülaltoodud näite väljund peaks olema:

10

con seatud võrdseks a, kuna tingimus a < boli tõene.

Pidage meeles, et argumendid value_if_trueja value_if_falsesamad tüübid peavad olema lihtsad, mitte täielikud avaldised.

Kolmepoolseid operaatoreid saab omavahel pesitseda nagu if-else avaldusi. Mõelge järgmisele koodile:

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

Siin on ülaltoodud kood ümber kirjutatud sisestatud kolmepoolse operaatori abil:

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

Mõlema ülaltoodud koodikomplekti väljund peaks olema:

3