Kolmepoolne operaator C-s
Programmeerijad kasutavad kolmekomponendiliste operaator otsuste tegemisel asemel enam kui ja teine olekuid.
Kolmepoolne operaator võtab vastu kolm argumenti:
- Esimene on võrdlusargument
- Teine on tõelise võrdluse tulemus
- 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_true
kas see condition
on täidetud ja value_if_false
muul 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
c
on seatud võrdseks a
, kuna tingimus a < b
oli tõene.
Pidage meeles, et argumendid value_if_true
ja value_if_false
samad 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