Ternární operátor (programování): Porovnání verzí
Smazaný obsah Přidaný obsah
trocha preformulovani |
predelani clanku |
||
Řádek 1:
'''Ternární operátor'''
== Operátor pro podmíněný výraz ==
Operátor pro podmíněný výraz se nejčastěji používá pro zkrácení zápisu vyhodnocení podmínky.
=== „?:“ ===
<source lang="java">▼
Tradiční jazykový konstruk if-else se v jazycích, které [[Syntaxe|syntaxí]] vychází z jazyka [[C (programovací jazyk)|C]] (například [[C++]], [[C Sharp|C#]], [[Vala (programovací jazyk)|Vala]], [[Objective-C]], [[Java (programovací jazyk)|Java]], [[JavaScript]] nebo [[ActionScript]]) se zapisuje následovně:
podmínka ? výraz1 : výraz2▼
if (podmínka) {
výraz1;
}
else {
výraz2;
}
</source>
Pomocí operátoru pro podmíněný výraz je možné tento zápis zkrátit:
Postup zpracování (v jazycích C/C++):▼
</source>▼
# Vyhodnotí se podmínka.
# Je-li podmínka nenulová (true), vyhodnotí se výraz1 a ten bude výsledkem celé [[Operace (matematika)|operace]].
# Je-li podmínka [[nula|nulová]] (false), vyhodnotí se výraz2 a ten bude výsledkem celé operace.
==== Specifika C++ ====
▲<source lang="java">
if (podmínka) return(výraz1); else return(výraz2);▼
▲</source>
=== Další varianty ===
▲* Některé jazyky před zpracováním ternárního operátoru vyhodnocují oba vstupní výrazy, takže, pokud jsou tyto výrazy náročné na výpočetní čas nebo prostředky, je lepší provést samotné vyhodnocení opisně, pomocí podmíněného vykonání kódu.<ref>http://latrine.dgx.cz/php-puvab-optimalizace-rychlosti</ref>
V jazyce CPL, který je předchůdcem jazyka C a kde se operátor poprvé objevil se zapisoval jako <code>''e''<sub>1</sub> → ''e''<sub>2</sub>, ''e''<sub>3</sub></code>.
▲* Operátor ?: v jazyce C++ nelze [[přetěžování|přetížit]].
V jazyce [[Perl 6]] se operátor zapisuje pomocí znaků „??!!“:
==Reference==▼
<source lang="Perl">
</source>
▲== Reference ==
{{překlad | en | Ternary_operation | 7222630}}
<references />
== Související články ==
* [[Operátor koalescence]]
{{Pahýl - software}}
[[Kategorie:Programovací konstrukce]]
|