Cvičení – inkrementace a dekrementace hodnot
Poslední základní operace, se kterými se seznámíte v tomto modulu, se dozvíte, jak zvýšit a dekrementovat hodnoty pomocí speciálních operátorů, které jsou kombinací symbolů.
Inkrementace a dekrementace
Často budete muset zvýšit nebo dekrementovat hodnoty, zejména při psaní logiky smyčky nebo kódu, který komunikuje s datovou strukturou.
Operátor += přidá a přiřadí hodnotu nacházející se vpravo od operátoru k hodnotě nacházející se vlevo od operátoru. Řádky dva a tři v následujícím fragmentu kódu jsou tedy stejné:
int value = 0; // value is now 0.
value = value + 5; // value is now 5.
value += 5; // value is now 10.
Operátor ++ zvýší hodnotu proměnné o 1. Řádky dva a tři v následujícím fragmentu kódu jsou tedy stejné:
int value = 0; // value is now 0.
value = value + 1; // value is now 1.
value++; // value is now 2.
Tyto stejné techniky lze použít pro odčítání, násobení a další. Následující kroky cvičení zvýrazní několik aspektů.
Poznámka:
Operátory jako +=, -=, *=, ++ a -- jsou známé jako operátory složeného přiřazení, protože kromě přiřazení výsledku proměnné vykonají nějakou operaci. Operátor += je výslovně nazýván operátorem sčítací přiřazení.
Napsání kódu pro zvýšení a snížení hodnoty
Vyberte veškerý kód, který jste napsali dříve v editoru kódu jazyka C# , a stisknutím kláves Delete nebo Backspace ho odstraňte.
Do editoru kódu jazyka C# zadejte následující kód:
int value = 1; value = value + 1; Console.WriteLine("First increment: " + value); value += 1; Console.WriteLine("Second increment: " + value); value++; Console.WriteLine("Third increment: " + value); value = value - 1; Console.WriteLine("First decrement: " + value); value -= 1; Console.WriteLine("Second decrement: " + value); value--; Console.WriteLine("Third decrement: " + value);Spusťte kód. Měl by se zobrazit následující výstup:
First increment: 2 Second increment: 3 Third increment: 4 First decrement: 3 Second decrement: 2 Third decrement: 1
Poznámka:
V "druhém kroku" jste použili value += 1;. K zvýšení této částky jste ale mohli použít libovolnou hodnotu literálu int (nebo proměnnou). Totéž platí pro "druhou dekrementaci": value -= 1;.
Umístění operátorů přírůstku a dekrementace
Operátory inkrementace i dekrementace mají zajímavou kvalitu – v závislosti na jejich pozici provádějí svou operaci před nebo po načtení hodnoty. Jinými slovy, pokud použijete operátor před hodnotou jako v ++value, pak se přírůstek stane před načtením hodnoty.
value++ Podobně zvýší hodnotu po načtení hodnoty.
Použijte operátor inkrementace před hodnotou a za hodnotou
Odstraňte kód z předchozích kroků a do editoru kódu jazyka C#zadejte následující kód:
int value = 1; value++; Console.WriteLine("First: " + value); Console.WriteLine($"Second: {value++}"); Console.WriteLine("Third: " + value); Console.WriteLine("Fourth: " + (++value));Spusťte kód. Měl by se zobrazit následující výstup:
First: 2 Second: 2 Third: 3 Fourth: 4
Všimněte si tohoto řádku kódu:
Console.WriteLine($"Second: {value++}");
Existují dva kroky k tomuto řádku:
- Načtěte aktuální hodnotu proměnné
valuea použijte ji v operaci interpolace řetězců. - Zvýší hodnotu.
Další řádek kódu potvrzuje, že hodnota byla ve skutečnosti vyšší.
Console.WriteLine("Third: " + value);
Naproti tomu zvažte poslední řádek kódu:
Console.WriteLine("Fourth: " + (++value));
Zde je pořadí operací přepnuto, protože ++ operátor je umístěn před operand value.
- Zvýší hodnotu.
- Načtěte novou hodnotu inkrementované proměnné
valuea použijte ji v řetězcové operaci.
I když to není nezbytně nutné, přidali jste kolem výrazu (++value) závorky, aby se zlepšila čitelnost. Vidět tolik + operátorů vedle sebe by mohlo být špatně pochopeno jinými vývojáři. Stylistické rozhodnutí, jako je toto, jsou subjektivní. Protože ale kód napíšete jednou, ale budete ho číst mnohokrát, měli byste určit prioritu čitelnosti.
Rekapitulace
Tady je, co jste se zatím naučili o matematických operacích v jazyce C#:
- Použijte složené operátory přiřazení, jako je
+=,-=,*=++a--k provádění matematické operace, jako je inkrementace nebo dekrementace, a pak přiřaďte výsledek do původní proměnné. - Operátory inkrementace a dekrementace působí odlišně v závislosti na tom, zda je operátor před operandem nebo za ním.