Operace a operátory Výrazy jsou vytvořené z operandů a operátorů Operátory výrazu označují, které operace se mají použít u operandů Příklady operandů zahrnují literály, pole, místní proměnné a výrazy Operátory se rozdělují podle využití Rozdělení operátorů podle arity (počtu operandů) Unární - používají se před nebo za jediný operand, sem patří prvky ikrementace (např. x++ / ++x, přidá jedničku k dané proměné), logická negace (například !x, vrátí negaci dané proměné) Binární - dávají se mezi dva operandy, používají se k matematickým úkonům jako je sčítání, odčítaní a další např. x + y Ternární - existuje pouze jeden a to ?: neboli if-else, tento operátor nelze přetížit , Operátor pro podmíněný výraz se nejčastěji používá pro zkrácení zápisu vyhodnocení podmínky Pokud výraz obsahuje více operátorů, priorita operátorů řídí pořadí, ve kterém jsou jednotlivé operátory vyhodnocovány Například výraz x + y * z je vyhodnocen jako x + (y * z), protože operátor * má vyšší prioritu než binární + operátor Priorita operátoru je založena na definici své související provozní gramatiky Priority a asociativita lze ovládat pomocí závorek Například x + y * z nejprve vynásobí y z a pak výsledek přidá do x, ale (x + y) * z nejprve přidá x a y a pak výsledek vynásobí z Operace se dělí na Aritmetické - využívají se při matematických operacích jako je sčítání či odčítaní, některé prvky mohou být polymorfní (různorodé) jako například dělení / fungují pro některé argumenty jako int neb byte celočíselně a pro float a double jako obyčejné dělení Logické - využívají se při vykonávání podmíněných příkazů - např. && je logický podmíněný součin (AND) vyhodnotí druhý operand pokud nelze rozhodnout z prvního & logický nepodmíněný součin vyhodnotí vždy oba operandy || je logický podmíněný součet (OR) druhý operand se vyhodnotí pouze pokud nelze rozhodnout z prvního | logický nepodmíněný součet vždy vyhodnotí oba operandy ! logická negace k určení opačné hodnoty Bitové - pomáhají zjistit konkrétní bit celého čísla - např. << / >> bitový posun v levo a v pravo nebo & bitový součin Relační - využíváme k řízení toku podmíněných příkazů, pomáha k rozhodnutí podmíněných příkazů nebo určení počtu cyklů - např. < menší než k porovnání dvou čísel Přiřazovací - operátor přiřazení slouží na přiřazení hodnoty do proměné příklady: int a, b, c, d; //deklarace operand a = 5; //přiřazené hodnoty k operandu pomocí přiřazovacímu operátoru = b = 7; c = a; d = b - c; //použití aritmetického operátoru - k odčítání hodnot if (b > d) //relační operátor pomáhá při rozhodnutí podmínky zda je b > (větší) než d { Console.WriteLine((b - a) * d); //priorita operátorů, násobení má přednost před odčítáním ale protože () jsou nejvíce postaveným operátorem tak mají přednost } else Console.WriteLine(b - a * d); //bez použití závorek se nejdříve vynásobí a * d a až poté se odečte od b //v kodu byly všechny operátory binární až na if-else který je ternární