Ц++ тернарни оператор

C Ternarni Operator



„Условни оператор и израз иф-елсе користе исту технику, али условни оператор чини изразе иф-елсе што краћим, док израз иф-елсе заузима више простора. У неким програмским језицима постоји оператор познат као тернарни оператор који прихвата три операнда за разлику од уобичајеног једног или два које већина оператора захтева. Нуди средство за кондензацију основног иф-елсе блока. У овом водичу, тернарни оператор у Ц++ ће бити покривен примерима. У неким случајевима, иф елсе изјава у Ц++ апликацијама може бити замењена тернарним оператором, често познатим као условни оператор.'

Синтакса тернарног оператора у Ц++

Три операнда су потребна за тернарни оператор: условни, тачан и нетачан. Како тернарни оператор анализира услов тестирања и, у зависности од исхода, извршава блок кода, синтакса је:

# (екп_1) ? екп_2 : екп_3

Овде „екп“ представља израз. У зависности од исхода израза, овај оператор враћа једну од две вредности. Изрази 2 и 3 се процењују, а њихове вредности се враћају као коначни резултати ако је „екп_1“ процењено на Боолеан труе; у супротном, израз 1 се процењује на Боолеан фалсе, а израз 2 се вреднује, а његова вредност се враћа као коначни резултат.







Пример 1

Ево једноставног примера програма који показује како се користи Ц++-ов тернарни оператор.



#инцлуде <иостреам>

#инцлуде <стринг>

користећи простор имена стд ;

инт главни ( ) {
дупло ЦГПА ;
цоут <> ЦГПА ;

стринг студент_ресулт = ( ЦГПА >= 1.5 ) ? 'прошло је' : 'није успео' ;

цоут << 'Ти ' << студент_ресулт << ' семестар.' ;

повратак 0 ;
}



У програму смо попунили одељак заглавља са Ц++ библиотекама. Након тога смо додали именски простор стд са кључном речју „усинг“. Затим је унутар ње декларисана променљива „ЦГПА“ са типом података „доубле“. У следећем реду смо тражили од корисника да унесе ЦГПА штампањем команде цоут. Са командом цин, корисници додају ЦГПА.





Затим смо креирали другу променљиву, „студент_ресулт“, која има тернарни оператор. Тернарном оператору су овде потребна три израза. Први је услов који проверава да ли је ЦГПА који је унео корисник већи или једнак „1,5“. Ако је тако, биће одштампана изјава „прошло“ или ће у супротном бити одштампан трећи израз. Исход ће бити приказан када користите команду цоут.

Рецимо да корисник укуца ЦГПА „3.5“. ЦГПА >= 1,5 онда се процењује на тачно, испуњавајући критеријум. Дакле, резултат је дат првим термином „положен“.



Рецимо да корисник унесе 1.00. Као резултат, услов ЦГПА >= 1,5 је погрешно процењен. Према томе, резултат добија други израз, „неуспео“.

Пример 2

Одређене врсте иф елсе изјава у Ц++ могу се заменити тернарним оператором. Можемо да променимо овај код као пример. Први пример програма користи услов иф-елсе, а други пример програма користи тернарни оператор.

#инцлуде <иостреам>

користећи простор имена стд ;

инт главни ( ) {

инт на једном = - 3 ;
цоут << 'на једном :' < 0 )
цоут << ' Позитиван цео број' ;
друго
цоут << ' Негативан цео број!' ;

повратак 0 ;
}

Декларисали смо и иницијализовали променљиву типа података инт „нум“ негативном целобројном вредношћу. Након тога, командом цоут, штампа се вредност „нум“. Затим, имамо услов ако-иначе. Унутар услова „иф“ смо навели услов да променљива „нум“ треба да буде већа од вредности нула. Ако услов постане тачан, онда ће команда цоут одмах иза услова „иф“ бити одштампана. Ако услов постане нетачан, онда ће се одштампати наредба елсе цоут.

Пошто је број негативна вредност, услов ако постаје нетачан и

Затим смо извршили горњи програм са тернарним оператором. Хајде да проверимо да ли услов иф-елсе и тернарни оператор имају исте ефекте.

#инцлуде <иостреам>

#инцлуде <стринг>

користећи простор имена стд ;

инт главни ( ) {

инт МиНум = - 7 ;
цоут << 'Цео број:' << МиНум < 0 ) ? 'Позитиван цео број!' : „Негативан цео број!“ ;
цоут << Исход << ендл ;

повратак 0 ;
}

Декларисали смо променљиву „МиНум“ и иницијализовали је негативном вредношћу. Одштампали смо негативну вредност тако што смо позвали променљиву „МиНум“ унутар команде цоут. Затим постављамо другу променљиву као „Исход“ са типом стринга. Варијабла исхода узима операцију тернарног оператора. Прво, имамо услов да „МиНум“ треба да буде већи од нуле. Након тога стављамо тернарни оператор „?”. Друга два израза ће се извршити на основу резултата услова.

Пошто је целобројна вредност „-7“, трећи израз, „Негативан цео број!“ се штампа на промпту. Овде је излаз из обе апликације исти. Тернарни оператор, међутим, побољшава читљивост и чистоћу нашег кода.

Пример 3

Поред тога, тернарни оператери се могу користити један унутар другог. Користите угнежђени тернарни оператор да проверите да ли је вредност позитивна, негативна или нула у следећем програму.

#инцлуде <иостреам>

#инцлуде <стринг>

користећи простор имена стд ;

инт главни ( ) {
инт цео број = 0 ;
стринг Резултат ;

Резултат = ( цео број == 0 ) ? 'Нула' : ( ( цео број > 0 ) ? 'позитивно' : 'негативно' ) ;

цоут << 'Цео број је' << Резултат ;

повратак 0 ;
}

Само почните са главним методом програма. У инт маин(), креирали смо променљиву са именом „интегер“ и поставили њену вредност на нулу. Затим смо дефинисали другу променљиву, „Резултат“, са низом типа података. Поставили смо променљиву „Резултат“, заобилазећи њу тернарни оператор. Услов је да вредност променљиве “интегер” буде једнака нули “интегер == 0”. Почетни услов, (цео број == 0), одређује да ли је дати цео број нула. Ако је тако, резултат добија вредност стринга „Нула“. ако је одговор тачан. У супротном, ако је први услов нетачан, испитује се други услов (цео број > 0).

Да, наведени цео број је нула, као што је приказано у скрипти. Излаз генерише „цео број је нула“.

Закључак

Свесни смо да је условни оператор тернарни оператор. Уз помоћ овог оператера можемо проверити услов и деловати у складу са њим. Можемо постићи исту ствар користећи иф-елсе услове уместо тернарног оператора. Овај Ц++ водич нас је научио како да користимо тернарни оператор кроз његову синтаксу и примере програма. Имајте на уму да тернарни оператор мора да се користи само ако је коначна изјава сажета.