TOC

This article has been localized into Czech by the community.

Operátory:

Operátory inkrementace/dekrementace

Při práci s hodnotami, zejména číselného druhu, často narazíte na potřebu přičíst nebo odečíst 1. To je samozřejmě velmi snadné – jen vezmete hodnotu, přičtete 1 a poté ji přiřadíte zpět k původní proměnné. Zde je příklad:

int userAge = 41; 
userAge = userAge + 1;

Proměnná userAge nyní obsahuje hodnotu 42 místo 41 – snadné! Samozřejmě můžete udělat totéž, když chcete odečíst 1:

userAge = userAge - 1; 

Postfixová inkrementace/dekrementace

Nicméně, C# má mnohem kratší operátor pro vykonání této práce: Operátor inkrementace/dekrementace. Jednoduše se skládá ze dvou plusů nebo dvou mínusů hned za sebou. Zde je první příklad přepsaný s použitím tohoto operátoru:

int userAge = 41; 
userAge++;
Console.WriteLine("Age of user: " + userAge);

Výsledek je přesně stejný, ale podívejte se, jak je to mnohem kratší! A můžeme to udělat ještě kratší, protože tento operátor může samozřejmě být použit uvnitř existujícího příkazu:

int userAge = 41; 
Console.WriteLine("Age of user: " + userAge++);

Ale počkejte chvíli – když toto otestujete, uvidíte, že hodnota proměnné userAge je stále vypisována jako 41. Proč? Protože používáme postfixovou verzi, která je vyhodnocena po okolním příkazu. Jinými slovy, řádek je vytisknut před tím, než je hodnota inkrementována. To bude chování, které v některých případech chcete, ale pro tento konkrétní případ to není optimální. To, co potřebujete, je prefixový operátor inkrementace.

Prefixová inkrementace/dekrementace

Tento operátor vypadá přesně jako postfixová verze, ale místo toho, aby se objevil po proměnné, objeví se před ní, což instruuje interpret, aby ho vyhodnotil před vyhodnocením okolního příkazu:

int userAge = 41; 
Console.WriteLine("Age of user: " + ++userAge);

To bude mít požadovaný efekt, kde proměnná userAge je inkrementováno před tím, než je řádek vytisknut. Nyní to může vypadat trochu matoucí se třemi znaménky plus, ale první je pro konkatenaci řetězců, zatímco poslední dvě jsou skutečný operátor. Pokud preferujete, můžete inkrementační příkaz uzavřít do závorek, aby bylo jasné, co patří dohromady:

Console.WriteLine("Age of user: " + (++userAge)); 

To je na vás, abyste rozhodli - funguje to přesně stejně!

A samozřejmě můžete použít operátor dekrementace přesně stejným způsobem, jak je ilustrováno výše. Zde je postfixová verze:

int userAge = 41; 
Console.WriteLine("Age of user: " + (userAge--));

A prefixová verze.

int userAge = 41; 
Console.WriteLine("Age of user: " + (--userAge));

Shrnutí

Tak to byly operátory inkrementace a dekrementace. Jsou skvělé pro velmi specifický případ použití: Když chcete hodnotu inkrementovat nebo dekrementovat o 1. V další kapitole se podíváme na operátor přiřazení sčítání, který vypadá velmi podobně jako tento, ale má mírně širší použití.

Stejně jako u několika dalších operátorů C#, i tento spadá pod termín "syntaktické sladidlo" - stejný úkol lze splnit i bez tohoto konkrétního operátoru, ale s ním se váš kód stává kratším. Zda se stane čitelnějším, je velmi subjektivní - někteří lidé je mají rádi, zatímco jiní cítí, že jejich kód je bez nich snadněji čitelný a srozumitelný. Je to opravdu na vás!


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!