Lekce 3: Operátory a výrazy – Manipulace s hodnotami v C#
V programování se často setkáváme s potřebou manipulovat s daty – provádět výpočty, porovnávat hodnoty a rozhodovat, jakým směrem se program bude ubírat na základě výsledků těchto operací. V jazyce C# jsou nástroji pro manipulaci s daty operátory a výrazy. Tato třetí lekce se zaměřuje na pochopení různých typů operátorů a jejich správného použití, což je nezbytné pro efektivní tvorbu kódu a řešení různých problémů.
Co jsou operátory?
Operátory jsou speciální symboly v programovacím jazyce, které umožňují provádět operace s jedním nebo více operandy. Operand může být hodnota, proměnná, výraz nebo funkce. Operátory v C# slouží k provádění různých typů operací, včetně matematických výpočtů, porovnávání hodnot a zpracování logických operací.
Všechny operace, které v C# provádíme, jsou založeny na kombinaci operátorů a operandů. Například v následujícím výrazu a + b
, jsou a
a b
operandy a +
je operátor, který říká, že chceme sčítat hodnoty operandů.
Druhy operátorů v C
V C# existuje několik druhů operátorů, které se dělí podle typu operací, které provádějí:
- Aritmetické operátory
- Relační (porovnávací) operátory
- Logické operátory
- Přiřazovací operátory
- Inkrementační a dekrementační operátory
- Bitové operátory
Každý z těchto operátorů má v programu jinou roli, ale všechny jsou nezbytné pro práci s daty v různých kontextech. Nyní se podíváme na jednotlivé typy operátorů podrobněji.
1. Aritmetické operátory
Aritmetické operátory se používají k provádění základních matematických operací, jako je sčítání, odčítání, násobení a dělení. Aritmetické operátory jsou nejčastěji používané operátory při práci s číselnými hodnotami.
Základní aritmetické operátory v C# zahrnují:
- + (sčítání): Sčítá dvě hodnoty.
- – (odčítání): Odečítá druhou hodnotu od první.
- * (násobení): Násobí dvě hodnoty.
- / (dělení): Dělí první hodnotu druhou. V případě celočíselných typů vrací celočíselný výsledek (tj. bez desetinné části).
- % (modulo): Vrací zbytek po celočíselném dělení.
Příklad použití aritmetických operátorů:
int a = 10;
int b = 3;
int soucet = a + b; // soucet = 13
int rozdil = a - b; // rozdil = 7
int soucin = a * b; // soucin = 30
int podil = a / b; // podil = 3 (protože pracujeme s celými čísly)
int zbytek = a % b; // zbytek = 1 (10 děleno 3 zanechává zbytek 1)
Všimněte si, že při dělení celočíselných hodnot vrací operátor / výsledek bez desetinné části. Pokud bychom pracovali s desetinnými čísly, například s typem double
, bude výsledek dělení přesnější:
double x = 10.0;
double y = 3.0;
double podil = x / y; // podil = 3.3333
2. Relační (porovnávací) operátory
Relační operátory se používají k porovnávání dvou hodnot. Výsledkem relační operace je vždy hodnota true
nebo false
, což je užitečné zejména při rozhodovacích procesech v programu, například při použití podmínkových příkazů jako if
.
Základní relační operátory v C#:
- == (rovná se): Vrací
true
, pokud jsou obě hodnoty stejné. - != (nerovná se): Vrací
true
, pokud jsou obě hodnoty různé. - > (větší než): Vrací
true
, pokud je první hodnota větší než druhá. - < (menší než): Vrací
true
, pokud je první hodnota menší než druhá. - >= (větší nebo rovno): Vrací
true
, pokud je první hodnota větší nebo rovna druhé. - <= (menší nebo rovno): Vrací
true
, pokud je první hodnota menší nebo rovna druhé.
Příklad použití relačních operátorů:
int a = 10;
int b = 5;
bool jeRovne = (a == b); // jeRovne bude false
bool jeVetsi = (a > b); // jeVetsi bude true
bool jeMensi = (a < b); // jeMensi bude false
3. Logické operátory
Logické operátory se používají při práci s pravdivostními hodnotami (true
nebo false
). Obvykle se používají v podmínkách a umožňují kombinovat více podmínek do jedné logické operace. Výsledkem logických operátorů je vždy hodnota true
nebo false
.
Základní logické operátory v C#:
- && (logické AND): Vrací
true
, pokud jsou obě podmínky pravdivé. - || (logické OR): Vrací
true
, pokud je alespoň jedna podmínka pravdivá. - ! (logické NOT): Vrací opačnou hodnotu pravdivosti. Pokud je výraz
true
, vrátífalse
a naopak.
Příklad použití logických operátorů:
bool a = true;
bool b = false;
bool vysledek1 = a && b; // vysledek1 bude false (obě podmínky nejsou pravdivé)
bool vysledek2 = a || b; // vysledek2 bude true (alespoň jedna podmínka je pravdivá)
bool vysledek3 = !a; // vysledek3 bude false (negace true je false)
Logické operátory jsou obzvláště užitečné při práci s podmínkovými výrazy a rozhodováním ve složitějších programech.
4. Přiřazovací operátory
Přiřazovací operátory slouží k přiřazení hodnoty do proměnné. Základní přiřazovací operátor je =, který přiřazuje hodnotu z pravé strany výrazu proměnné na levé straně.
C# také poskytuje několik zkrácených verzí přiřazovacích operátorů, které kombinují aritmetické operace s přiřazením. Mezi tyto operátory patří:
- +=: Přičte hodnotu a přiřadí výsledek.
- -=: Odečte hodnotu a přiřadí výsledek.
- *=: Vynásobí hodnotu a přiřadí výsledek.
- /=: Vydělí hodnotu a přiřadí výsledek.
- %=: Vypočítá zbytek po dělení a přiřadí výsledek.
Příklad použití přiřazovacích operátorů:
int a = 10;
a += 5; // a bude 15
a -= 3; // a bude 12
a *= 2; // a bude 24
a /= 4; // a bude 6
5. Inkrementační a dekrementační operátory
Inkrementační a dekrementační operátory jsou používány ke zvýšení nebo snížení hodnoty proměnné o jednu jednotku.
- ++ (inkrementace): Zvyšuje hodnotu proměnné o 1.
- — (dekrementace): Snižuje hodnotu proměnné o 1.
Tyto operátory mohou být
použity ve dvou formách: prefixové (např. ++a
) a postfixové (např. a++
). Rozdíl spočívá v tom, kdy se změna hodnoty projeví.
- Prefixová forma: Nejprve dojde ke změně hodnoty a poté se tato nová hodnota použije ve výrazu.
- Postfixová forma: Nejprve se použije původní hodnota a teprve poté dojde ke změně.
Příklad použití inkrementace a dekrementace:
int a = 5;
int b = ++a; // a bude 6, b bude 6 (prefixová inkrementace)
int c = a--; // a bude 5, c bude 6 (postfixová dekrementace)
6. Bitové operátory
Bitové operátory umožňují manipulovat s jednotlivými bity hodnot. Používají se především v nízkoúrovňových operacích, jako je práce s hardwarem nebo optimalizace výkonu.
Základní bitové operátory v C#:
- & (bitové AND): Provede bitový AND mezi dvěma čísly.
- | (bitové OR): Provede bitový OR mezi dvěma čísly.
- ^ (bitové XOR): Provede bitový XOR mezi dvěma čísly.
- ~ (bitové NOT): Inverzuje všechny bity čísla.
- << (bitový posun vlevo): Posune bity čísla doleva o zadaný počet pozic.
- >> (bitový posun vpravo): Posune bity čísla doprava o zadaný počet pozic.
Příklad použití bitových operátorů:
int a = 5; // v binární soustavě: 0101
int b = 3; // v binární soustavě: 0011
int vysledekAnd = a & b; // bitové AND: 0001 (v desítkové soustavě: 1)
int vysledekOr = a | b; // bitové OR: 0111 (v desítkové soustavě: 7)
int vysledekXor = a ^ b; // bitové XOR: 0110 (v desítkové soustavě: 6)
Závěr
Operátory a výrazy jsou nezbytným základem každého programu. Díky nim můžeme provádět výpočty, porovnávat hodnoty a rozhodovat, jakým směrem se bude náš program ubírat. V této lekci jsme se seznámili s aritmetickými, relačními, logickými a dalšími typy operátorů a jejich praktickým využitím. Pochopení těchto operátorů je klíčové pro každého programátora, neboť tvoří základ veškerých výpočetních a logických operací v C#.