Kolmiosaisen operaattorin syntaksi C++:ssa
Kolmiosaiselle operaattorille vaaditaan kolme operandia: ehdollinen, tosi ja epätosi. Kun kolmiosainen operaattori analysoi testitilannetta ja tuloksesta riippuen suorittaa koodilohkon, syntaksi on:
# (exp_1) ? exp_2 : exp_3Tässä 'exp' edustaa lauseketta. Lausekkeen tuloksesta riippuen tämä operaattori palauttaa yhden kahdesta arvosta. Lausekkeet 2 ja 3 arvioidaan ja niiden arvot palautetaan lopputuloksiksi, jos 'exp_1' on arvioitu Boolen tosi; Muussa tapauksessa lauseke 1 arvioidaan Boolen arvoksi epätosi ja lauseke 2 arvioidaan ja sen arvo palautetaan lopputuloksena.
Esimerkki 1
Tässä on suoraviivainen esimerkkiohjelma, joka näyttää kuinka käyttää C++:n ternaarista operaattoria.
#include
#sisällytä
käyttäen nimiavaruutta std ;
int pää ( ) {
kaksinkertainen CGPA ;
cout <> CGPA ;
merkkijono opiskelijan_tulos = ( CGPA >= 1.5 ) ? 'läpäissyt' : 'epäonnistui' ;
cout << 'Sinä ' << opiskelijan_tulos << ' lukukausi.' ;
palata 0 ;
}
Ohjelmassa olemme täyttäneet otsikkoosiomme C++-kirjastoilla. Sen jälkeen lisäsimme nimiavaruuden std avainsanalla 'using'. Sitten muuttuja 'CGPA' datatyypillä 'double' on ilmoitettu sen sisällä. Seuraavalla rivillä olemme pyytäneet käyttäjää syöttämään CGPA:n tulostamalla komennon cout. Cin-komennolla käyttäjät lisäävät CGPA:n.
Sitten loimme toisen muuttujan, 'student_result', jolla on kolmiosainen operaattori. Kolmiosainen operaattori tarvitsee tässä kolme lauseketta. Ensimmäinen on ehto, joka tarkistaa, onko käyttäjän syöttämä CGPA suurempi tai yhtä suuri kuin '1,5'. Jos näin on, tulostetaan lause 'hyväksytty' tai muuten tulostetaan kolmas lauseke. Tulos näytetään, kun käytät cout-komentoa.
Oletetaan, että käyttäjä kirjoittaa CGPA:n '3.5'. CGPA >= 1,5 arvioi sitten arvoksi tosi, mikä täyttää kriteerin. Joten tulokselle annetaan ensimmäinen termi 'hyväksytty'.
Oletetaan, että käyttäjä kirjoittaa 1.00. Tämän seurauksena ehto CGPA >= 1,5 on arvioitu väärin. Siksi tulokselle annetaan toinen lauseke, 'epäonnistui'.
Esimerkki 2
Tietynlaiset if else -lauseet C++:ssa voidaan vaihtaa kolmiosaisella operaattorilla. Voimme muuttaa tätä koodia esimerkkinä. Ensimmäinen esimerkkiohjelma käyttää if-else-ehtoa ja toinen esimerkkiohjelma kolmiosaista operaattoria.
#includekäyttäen nimiavaruutta std ;
int pää ( ) {
int yhdellä = - 3 ;
cout << 'yhdellä :' < 0 )
cout << ' \n Positiivinen kokonaisluku' ;
muu
cout << ' \n Negatiivinen kokonaisluku!' ;
palata 0 ;
}
Olemme ilmoittaneet ja alustaneet int-tietotyyppimuuttujan ”num” negatiivisella kokonaislukuarvolla. Tämän jälkeen 'num'-arvo tulostetaan komennolla cout. Sitten meillä on jos-else-ehto. 'Jos'-ehdon sisällä olemme määrittäneet ehdon, että muuttujan 'num' tulee olla suurempi kuin arvo nolla. Jos ehdosta tulee tosi, tulostuu komento cout heti ”jos”-ehdon jälkeen. Jos ehdosta tulee epätosi, else cout -lause tulostetaan.
Koska luku on negatiivinen arvo, if-ehdosta tulee epätosi ja
Seuraavaksi suoritimme yllä olevan ohjelman ternäärisellä operaattorilla. Katsotaanpa, onko if-else-ehdolla ja kolmiosaisella operaattorilla samat vaikutukset.
#include#sisällytä
käyttäen nimiavaruutta std ;
int pää ( ) {
int OmaNum = - 7 ;
cout << 'Kokonaisluku:' << OmaNum < 0 ) ? 'Positiivinen kokonaisluku!' : 'Negatiivinen kokonaisluku!' ;
cout << Tulokset << endl ;
palata 0 ;
}
Olemme ilmoittaneet muuttujan 'MyNum' ja alustaneet sen negatiivisella arvolla. Olemme tulostaneet negatiivisen arvon kutsumalla 'MyNum'-muuttujaa cout-komennon sisällä. Sitten asetamme toisen muuttujan merkkijonotyypille 'Outcome'. Tulosmuuttuja ottaa kolmiosaisen operaattorin operaation. Ensinnäkin meillä on ehto, että 'MyNum' on suurempi kuin nolla. Sen jälkeen laitamme kolmiosaisen operaattorin '?'. Kaksi muuta lauseketta suoritetaan ehdon tuloksen perusteella.
Koska kokonaislukuarvo on '-7', kolmas lauseke, 'Negatiivinen kokonaisluku!' on painettu kehotteeseen. Tässä molempien sovellusten tulos on sama. Kolmiosainen operaattori kuitenkin parantaa koodimme luettavuutta ja puhtautta.
Esimerkki 3
Lisäksi kolmiosaisia operaattoreita voidaan käyttää toistensa sisällä. Käytä sisäkkäistä kolmiosaista operaattoria tarkistaaksesi, onko arvo positiivinen, negatiivinen vai nolla seuraavassa ohjelmassa.
#include#sisällytä
käyttäen nimiavaruutta std ;
int pää ( ) {
int kokonaisluku = 0 ;
merkkijono Tulos ;
Tulos = ( kokonaisluku == 0 ) ? 'Nolla' : ( ( kokonaisluku > 0 ) ? 'positiivinen' : 'Negatiivinen' ) ;
cout << 'Kokonaisluku on' << Tulos ;
palata 0 ;
}
Aloita vain ohjelman päämenetelmästä. Kohdassa int main() olemme luoneet muuttujan nimeltä 'integer' ja asettanut sen arvoksi nolla. Sitten määritimme toisen muuttujan, 'Result', tietotyyppimerkkijonolla. Olemme asettaneet muuttujan 'Result' ohittaen sen kolmiosaisen operaattorin. Edellytyksenä on, että muuttujan 'integer' arvo on yhtä suuri kuin nolla 'integer == 0'. Alkuehto (kokonaisluku == 0) määrittää, onko annettu kokonaisluku nolla vai ei. Jos näin on, tulokselle annetaan merkkijonoarvo 'Zero'. jos vastaus on oikea. Muussa tapauksessa, jos ensimmäinen ehto on epätosi, toinen ehto (kokonaisluku > 0) tutkitaan.
Kyllä, annettu kokonaisluku on nolla, kuten skriptissä näkyy. Tulos tuottaa 'Kokonaisluku on nolla'.
Johtopäätös
Tiedämme, että ehdollinen operaattori on kolmiosainen operaattori. Tämän operaattorin avulla voimme tarkistaa tilanteen ja toimia sen mukaisesti. Saatamme suorittaa saman asian käyttämällä if-else-ehtoja kolmiosaisen operaattorin sijaan. Tämä C++-opetusohjelma opetti meitä käyttämään Ternary Operatoria sen syntaksin ja esimerkkiohjelmien kautta. Muista, että kolmiosaista operaattoria saa käyttää vain, jos lopullinen lausunto on ytimekäs.