Cvičení – inkrementace a dekrementace hodnot
Posledními základními operacemi, se kterými se v tomto modulu seznámíte, je inkrementace a dekrementace hodnot proměnných pomocí speciálních operátorů, které jsou tvořené 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 na pravé straně operátoru k hodnotě nalevo od operátoru. Takže řádky dvě a tři v následujícím fragmentu kódu jsou stejné:
int value = 0; // value is now 0.
value = value + 5; // value is now 5.
value += 5; // value is now 10.
Operátor ++
navyšuje hodnotu této proměnné o 1. Takže řádky dvě a tři v následujícím fragmentu kódu jsou 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ší. V následujících krocích cvičení vysvětlíme některé z nich.
Poznámka:
Operátory +=
, -=
, *=
, ++
a --
se nazývají složené operátory přiřazení, protože před operací přiřazení provedou ještě další operaci a její výsledek přiřadí proměnné. Například operátor +=
se nazývá složený operátor sčítání a přiřazení.
Napsání kódu pro zvýšení a snížení hodnoty
Vyberte veškerý kód v editoru .NET a stisknutím klávesy Delete nebo Backspace ho odstraňte.
Do editoru .NET 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 přírůstku" 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 („Second decrement“) s úbytkem 1: 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 operátor použijete před proměnnou (například takto: ++value
), dojde k inkrementaci před načtením hodnoty. Naopak příkaz value++
nejdříve hodnotu načte a až potom inkrementuje hodnotu proměnné.
Použití operátoru přírůstku před a za hodnotou
Odstraňte kód z předchozích kroků a do editoru .NET 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++}");
Tento řádek zahrnuje dva kroky:
- Načte aktuální hodnotu proměnné
value
a použije ji v operaci interpolace řetězců. - Inkrementuje hodnotu proměnné.
Další řádek kódu ověří, jestli byla hodnota proměnné opravdu inkrementována.
Console.WriteLine("Third: " + value);
Pro srovnání se podívejte na poslední řádek kódu:
Console.WriteLine("Fourth: " + (++value));
Tady je pořadí operací obrácené, protože operátor ++
je umístěný před operandem value
.
- Inkrementuje hodnotu proměnné.
- Načtěte novou hodnotu inkrementované proměnné
value
a 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. Kdyby totiž jiní vývojáři viděli tolik operátorů +
vedle sebe, nemuseli by jim rozumět. Takováto stylistická rozhodnutí 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#:
- Složené operátory přiřazení
+=
,-=
,*=
,++
a--
slouží k provádění matematických operací, jako je inkrementace nebo dekrementace, a k následnému přiřazení výsledku do původní proměnné. - Operátory inkrementace a dekrementace fungují různě v závislosti na tom, jestli příslušný operátor je před operandem nebo za ním.