Ternární operátor C++

Ternarni Operator C



„Podmíněný operátor a příkaz if-else používají stejnou techniku, ale podmíněný operátor dělá výrazy if-else co nejkratšími, zatímco výraz if-else zabírá více místa. V některých programovacích jazycích existuje operátor známý jako ternární operátor, který přijímá tři operandy na rozdíl od obvyklého jednoho nebo dvou, které vyžaduje většina operátorů. Nabízí způsob kondenzace základního bloku if-else. V této příručce bude ternární operátor v C++ popsán pomocí příkladů. V některých případech lze příkaz if else v aplikacích C++ nahradit ternárním operátorem, často známým jako podmíněný operátor.

Syntaxe ternárního operátoru v C++

Pro ternární operátor jsou vyžadovány tři operandy: podmíněný, pravdivý a nepravdivý. Když ternární operátor analyzuje testovací podmínky a v závislosti na výsledku provede blok kódu, syntaxe je:

# (exp_1) ? exp_2: exp_3

Zde „exp“ představuje výraz. V závislosti na výsledku výrazu vrací tento operátor jednu ze dvou hodnot. Výrazy 2 a 3 jsou vyhodnoceny a jejich hodnoty jsou vráceny jako konečné výsledky, pokud je „exp_1“ vyhodnoceno jako logická pravda; jinak je výraz 1 vyhodnocen jako logická nepravda a výraz 2 je vyhodnocen a jeho hodnota je vrácena jako konečný výsledek.







Příklad 1

Zde je jednoduchý příklad programu ukazující, jak používat ternárního operátora C++.



#include

#include <řetězec>

pomocí jmenného prostoru std ;

int hlavní ( ) {
dvojnásobek CGPA ;
cout <> CGPA ;

řetězec student_result = ( CGPA >= 1.5 ) ? 'prošel' : 'nepovedlo se' ;

cout << 'Vy ' << student_vysledek << ' semestr.' ;

vrátit se 0 ;
}



V programu jsme naplnili naši sekci záhlaví knihovnami C++. Poté jsme přidali jmenný prostor std s klíčovým slovem „using“. Poté byla v ní deklarována proměnná „CGPA“ s typem dat „double“. V dalším řádku jsme požádali uživatele, aby zadal CGPA vytištěním příkazu cout. Pomocí příkazu cin uživatelé přidávají CGPA.





Poté jsme vytvořili další proměnnou „student_result“, která má ternární operátor. Ternární operátor zde potřebuje tyto tři výrazy. První je podmínka, která kontroluje, zda je CGPA zadané uživatelem větší nebo rovno „1,5“. Pokud ano, vytiskne se prohlášení „vyhovělo“ nebo se vytiskne třetí výraz. Výsledek se zobrazí, když použijete příkaz cout.

Řekněme, že uživatel zadá CGPA „3.5“. CGPA >= 1,5 se pak vyhodnotí jako pravda, čímž je splněno kritérium. Výsledkem je tedy první výraz „prošel“.



Řekněme, že uživatel zadá 1,00. V důsledku toho je podmínka CGPA >= 1,5 chybně vyhodnocena. Proto je výsledku přiřazen druhý výraz „nevyhověl“.

Příklad 2

Některé druhy příkazů if else v C++ lze zaměnit s ternárním operátorem. Tento kód můžeme upravit jako příklad. První ukázkový program používá podmínku if-else a druhý ukázkový program používá ternární operátor.

#include

pomocí jmenného prostoru std ;

int hlavní ( ) {

int na jednom = - 3 ;
cout << 'na jednom:' < 0 )
cout << ' \n kladné celé číslo' ;
jiný
cout << ' \n Záporné celé číslo!' ;

vrátit se 0 ;
}

Deklarovali jsme a inicializovali proměnnou datového typu int „num“ s hodnotou záporného celého čísla. Poté se příkazem cout vytiskne hodnota „num“. Pak máme podmínku if-other. Uvnitř podmínky „if“ jsme zadali podmínku, že proměnná „num“ má být větší než nula. Pokud se podmínka stane pravdivou, vytiskne se příkaz cout hned za podmínkou „if“. Pokud se podmínka stane nepravdivou, vytiskne se příkaz else cout.

Protože číslo je záporná hodnota, podmínka if se stane nepravdivou a

Dále jsme provedli výše uvedený program s ternárním operátorem. Pojďme zkontrolovat, zda podmínka if-else a ternární operátor mají stejné účinky.

#include

#include <řetězec>

pomocí jmenného prostoru std ;

int hlavní ( ) {

int MyNum = - 7 ;
cout << 'Celé číslo:' << MyNum < 0 ) ? 'Pozitivní celé číslo!' : 'Záporné celé číslo!' ;
cout << Výsledek << endl ;

vrátit se 0 ;
}

Deklarovali jsme proměnnou „MyNum“ a inicializovali jsme ji zápornou hodnotou. Zápornou hodnotu jsme vytiskli voláním proměnné „MyNum“ uvnitř příkazu cout. Poté nastavíme další proměnnou jako „Outcome“ s typem řetězce. Výsledná proměnná přebírá operaci ternárního operátoru. Za prvé, máme podmínku, že „MyNum“ by mělo být větší než nula. Poté vložíme ternární operátor „?“. Další dva výrazy budou provedeny na základě výsledku podmínky.

Protože hodnota celého čísla je „-7“, třetí výraz, „Záporné celé číslo!“ je vytištěno na výzvě. Zde je výstup z obou aplikací stejný. Ternární operátor však zlepšuje čitelnost a čistotu našeho kódu.

Příklad 3

Navíc lze ternární operátory používat jeden v druhém. Pomocí vnořeného ternárního operátoru zkontrolujte, zda je hodnota v následujícím programu kladná, záporná nebo nulová.

#include

#include <řetězec>

pomocí jmenného prostoru std ;

int hlavní ( ) {
int celé číslo = 0 ;
řetězec Výsledek ;

Výsledek = ( celé číslo == 0 ) ? 'Nula' : ( ( celé číslo > 0 ) ? 'Pozitivní' : 'Negativní' ) ;

cout << 'Celé číslo je' << Výsledek ;

vrátit se 0 ;
}

Začněte s hlavní metodou programu. V int main() jsme vytvořili proměnnou s názvem „integer“ a nastavili její hodnotu na nulu. Poté jsme definovali další proměnnou „Výsledek“ s řetězcem datového typu. Nastavili jsme proměnnou „Result“ a vynechali jsme ternární operátor. Podmínkou je, že hodnota proměnné „integer“ by měla být rovna nule „integer == 0“. Počáteční podmínka (celé číslo == 0) určuje, zda je dané celé číslo nula. Pokud ano, výsledek dostane hodnotu řetězce „nula“. pokud je odpověď správná. V opačném případě, je-li první podmínka nepravdivá, zkoumá se druhá podmínka (celé číslo > 0).

Ano, zadané celé číslo je nula, jak je znázorněno ve skriptu. Výstup generuje „Integer is Zero“.

Závěr

Jsme si vědomi, že podmíněný operátor je ternární operátor. S pomocí tohoto operátora můžeme zkontrolovat stav a jednat v souladu s ním. Můžeme dosáhnout stejné věci pomocí podmínek if-else namísto ternárního operátoru. Tento tutoriál C++ nás naučil, jak používat ternárního operátora prostřednictvím jeho syntaxe a ukázkových programů. Mějte na paměti, že ternární operátor musí být použit pouze v případě, že je konečné prohlášení stručné.