6. lekce - Operátory

Operátory jsou velmi důležité prvky při programování. Pokud máme například situaci, že potřebujeme v podmínce (if) použít 2 podmínky, tak pomocí operátoru vytvoříme jakýsi výrok (matematika, 1. ročník SPŠ Zlín), díky kterému můžeme určit, zda je výsledek podmínky pravda či lež.

Operátory:

Kategorie Název ukázka Přetížitelný ?
Základní Seskupení (a+b) Ne
Člen A.B Ne
Ukazatel na člena struktury A->B Ne
Volání metody metoda(argumenty) Ne
Následný inkrement (obvykle zvýšení hodnoty o 1) a++ Ano
Následný dekrement (obvykle snížení hodnoty o 1) a-- Ano
Volání konstruktoru c = new trida() Ne
Alokace Array stack (ukazatelé - lekce 7) int* c =´stackallock[10] Ne
Velikost struktury sizeof (promenna) Ne
Kontrola přetečení - zapnout checked {long lg = 10 + 200;} Ne
Kontrola přetečení - vypnout unchecked {long lg = 10 + 200;} Ne
Unární Kladná hodnota +123 Ano
Záporná hodnota -456 Ano
Negace !(a == b) Ano
Bitový doplněk ~(promenna) Ano
Předcházející dekrement --a Ano
Předcházející inkrement ++b Ano
Přenos typu  (myType)a Ne
Hodnota adresy typ_promenne* a = b Ne
Adresa hodnoty typ_promenne* a = &b Ne
Typové operátory Ověření kompatibility a is typ_promenne Ne
Vrácení informací o aktuálním typu proměnné typeof(promenna) Ne
Matematické Sčítání a + b Ano
Odčítání a - b Ano
Násobení a * b Ano
Dělení a / b Ano
Modulo (Zbytek po celočíselném dělení) a % b Ano
Posun bitu vpravo a>>3 Ano
Posun bitu vlevo b<<3 Ano
Relační a logické Menší než a Ano
Menší nebo rovno a<=b Ano
Větší než a>b Ano
Větší nebo rovno a>=b Ano
Rovná se a==b Ano
Nerovná se a!=b Ano
Bitové and a&b Ano
Bitové or a|b Ano
Logické and a&&b Ne
Logické or a||b Ne
Zkrácená podmínka byte b=(i<10) ? 0:100 Ne

Zkrácená podmínka  je možná na první pohled složitá, ale věřím že ji všichni pochopíte. Můžeme psát jednoduše podmínku if:

if (i < 10)
      byte b = 0;
else
      byte b = 100;

Tot celé lze zkrátit do jednoho vzorce:

typ_promenne nazev_promenne = (podmínka)? true_část : část_else;
byte b = (i<10)? 0:100;

Na začátku jsem psal o více podmínkách. Více podmínek v kódu je nejspíš častý problém. Podmínky se v C# vytváří jako "objekty", které se postupně (všechny) projdou a podle vzájemného vztahu mezi nimi se vyhodnotí výsledek

obecný zápis: if ( (podmínka1) vztah (podmínka2) vztah (podmínka3) ...)
např:
   if ((a<10) && (b == 15) || (s != "Tu jsem"))

Vysvětlení: Pokud 'b' se rovná 15 a nebo 's' se nerovná "Tu jsem" a zároveň 'a' je menší jak 10 udělej ...

V podmínka jsem použil && a ||. Souvisí to s výrokovou logikou (viz. matematika 1. roční SŠ).
Pro &&. Zde musí být pro výsledek true všechny podmínky true.

Podmínka 1 Podmínka 1 Výsledek Negace vásledku 
True True True False
True False False True
False True False True
False False False True

Pro ||. Zde stačí aby byla aspoň jedna podmínka true.

Podmínka 1 Prodmínka 2 Výsledek Negace výsledku
True True True False
True Flase True False
False True True False
Flase False False True
<-- Předchozí lekce - 5. lekce - Pole  Další lekce - 7. lekce - Ukazatelé -->

Pokud máte otázky, pište na naši adresu, Facebook nebo na Twitter