Prva stvar koju ste učili iz matematike još dok ste išli u osnovnu školu su sabiranje, oduzimanje, množenje i deljenje; prvo celih brojeva zatim i drugih. Tako se počinje i učenju programskih jezika, ali imajte u vidu da neki programerski operatori ne postoje u matematici i nemaju uvek istu matematičku simboliku kao i obratno. I pored toga što su operatori poznati svakom C i C++ programeru, C# programski jezik je razvio i neke promene i dodao neke nove kategorije operatora.
( Kategorije operatora u C# programskom jeziku )
Aritmetički + - * / %
Logički & | ^ ~ && || !
Konkatenacija – spajanje stringova +
Inkrementiranje i dekrementiranje – uvećanje i smanjenje ++ --
Pomeranje bitova << >>
Poređenje == != <> <= >=
Dodeljivanje = += -= *= /= %= &= != ^= <<= >>=
Pristup članovima (za objekte i strukture) .
Indeksiranje (za nizove i indeksere) []
Promena tipa ()
Ternarni – kondicionalni ?:
Stvaranje objekta new
Informacije o tipu sizeof (samo u nebezbednom kodu), is type of as
Kontrola izuzetaka prekoračenja checked, unchecked
Indirekcija i adresa * -> & (samo unebezbednom kodu) []
Unarni +x –x !x ~x ++x –x (T)x Await &x *x
Null – coalescing x??y
Null – propagiranje (Elvis operator) ?.
Lambda =>
i drugi.
Šta je to prioritet operatora?
U C# programskom jeziku se operatori imaju svoj prioritet kako se izvršavaju. Npr. množenje će se uvek pre izvršiti nego sabiranje. Zato je neophodno i sigurnije da uvek koristite zagrade pre nego dođete u situaciju da zbog prioriteta operatora dobijete pogrešan rezultat.
number = 4 + 5 * 6; // Result is 34
ali ste možda očekivali da dobijete rezultat 54. Zato uvek koristite zagrade.
number = (4 + 5) * 6; // Result is 54
( Operatori u C# programskom jeziku poređani prema prioritetu )
Šta su aritmetički operatori?
Aritmetički operatori su vam kao i u matematici; operatori koji koriste aritmetičke operacije. A to su:
- + sabiranje
- - oduzimanje
- · množenje
- / delenje
- % mod, modul, modulos, modulo – celobrojni ostatak
using System;
using static System.Console;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArithmeticOperators
{
class Program
{
static void Main(string[] args)
{
WriteLine("Enter number 1 of 2: ");
double number1 = Double.Parse(ReadLine());
WriteLine("Enter number 2 of 2: ");
double number2 = Double.Parse(ReadLine());
WriteLine($"\n{number1} + {number2} = { number1 + number2 }");
WriteLine($"\n{number1} - {number2} = { number1 - number2 }");
WriteLine($"\n{number1} * {number2} = { number1 * number2 }");
WriteLine($"\n{number1} / {number2} = { number1 / number2 }");
WriteLine($"\n{number1} % {number2} = { number1 % number2 }");
ReadLine();
}
}
}
Kao
što vidite u kodu, C# 6.0 ima svoj novi format za string-ove. Zahvaljujući novom
formatu za string koji se piše sa karakterom za dolar $, vi ne morate da pišete
kod ovako:
WriteLine("\n{0} + {1}
= {2}", number1, number2, number1 + number2);
WriteLine("\n{0} - {1} = {2}", number1, number2, number1 - number2);
WriteLine("\n{0} * {1} = {2}", number1, number2, number1 * number2);
WriteLine("\n{0} / {1} = {2}", number1, number2, number1 / number2);
WriteLine("\n{0} % {1} = {2}", number1, number2, number1 % number2);
Naredba
Parse u kodu jednostavno konvertuje vaš ulaz string u tip double u ovom
primeru. Da ste hteli da iz string-a konverujete broj u integer, onda bi ste
liniju koda pisali ovako:
int number1 = int.Parse(ReadLine());
ili što je češći slučaj ovako:
int number2 = Int32.Parse(ReadLine());
Enter number 1 of 2:
25
Enter number 2 of 2:
4
25 + 4 = 29
25 - 4 = 21
25 * 4 = 100
25 / 4 = 6.25
25 % 4 = 1
Kako izgleda navedeni program možete pogledati i na video-u:
(C# 6.0 Tutorial - Fundamentals - 3. Arithmetic Operators )
Šta je inkrementiranje i dekrementiranje?
S obzirom da se u programiranju često javlja potreba da promenjivu uvećavamo ili smanjujemo za 1, posebno u radu sa petljama, došlo je do potrebe da se naprave operatori koji će uvećavati ili smanjivati promenjivu za 1. Zato koristimo operatore za inkrementiranje (uvećavanje) i dekrementiranje (umanjivanje). Pogledajte kod narednog programa:
using System;
using static System.Console;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IncrementDecrementOperators
{
class Program
{
static void Main(string[] args)
{
WriteLine("Enter an integer number: ");
int number = Int32.Parse(ReadLine());
WriteLine($"\nYour number is: {number}");
WriteLine($"\nYour number {number}
after post-increment ( x++ ): {number++}");
WriteLine($"\nYour number {number}
after post-decrement ( x-- ): {number--}");
WriteLine($"\nYour number {number}
after pre-increment ( ++x ): {++number}");
WriteLine($"\nYour number {number}
after pre-decrement ( --x ): {--number}");
WriteLine("\nThe results are not error!");
ReadLine();
}
}
}
Enter an integer number:
15
Your number is: 15
Your number 15 after post-increment ( x++ ): 15
Your number 16 after post-decrement ( x-- ): 16
Your number 15 after pre-increment ( ++x ): 16
Your number 16 after pre-decrement ( --x ): 15
The results are not error!
U prvoj liniji koda vidimo da je promenjivoj number prvo ispisao vrednost number zatim izvršio inkrementiranje. Zato vi vidite istu vašu vrednost 15; što ne znači da inkrementiranje nije izvršeno. Kod dekrementiranja se stvar ponavlja; program prvo ispisuje vrednost zatim vrši dekrementiranje. Ovakvo inkrementiranje i dekrementiranje se preciznije zove sufiksno inkremetiranje i dekrementiranje. Uglavnom se koristi kod petlji. Zato kad želite da prikažete rezultat inkrementiranja ili dekrementiranja koristite prefiksno inkrementiranje ili dekrementiranje gde se prvo izvrši inkrementirane ili dekrementiranje pa se zatim prikaže vrednost. Ova ista pravila važe i kod C i kod C++ programskog jezika. Kako navedeni program izgleda možete pogledati i na video-u:
( C# 6.0 Tutorial - Fundamentals - 4. Increment and Dectrement Operators )
Operatori dodeljivanja ili operatori složenog dodeljivanja su vam jednostavno operatori koji nam na neki način skraćuju dodeljivanje neke vrednosti promenjivoj. Npr. umesto da pišete:
x = x + 10;
x += 10;
( Operatori dodeljivanja u C# programskom jeziku )
using System;
using static System.Console;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AssignmentOperators
{
class Program
{
static void Main(string[] args)
{
WriteLine("Enter an integer number: ");
int number = Int32.Parse(ReadLine());
WriteLine($"\n X = {number}");
WriteLine($"\n X = X +
18 ... X += 18 ... { number += 18 }");
WriteLine($"\n X = X -
13 ... X -= 13 ... { number -= 13 }");
WriteLine($"\n X = X * 9
... X *= 9 ... { number
*= 9 }");
WriteLine($"\n X = X / 7
... X /= 7 ... { number /= 7 }");
WriteLine($"\n X = X % 3
... X %= 3 ... { number %= 3 }");
ReadLine();
}
}
}
Enter an integer number:
10
X = 10
X = X + 18 ... X += 18 ... 28
X = X - 13 ... X -= 13 ... 15
X = X * 9 ... X *= 9 ... 135
X = X / 7 ... X /= 7 ... 19
X = X % 3 ... X %= 3 ... 1
Kako navedeni program radi možete videti i na video-u:
( C# 6.0 Tutorial - Fundamentals - 5. Assignment Operators )
Operatori poređenja, poznati i kao relacioni operatori su u suštini binarni operatori koji proveravaju istinitost uslova dva operanda i vraćaju logičku vrednost tipa bool, tj. true ili false u zavisnosti da li je uslov ispunjen. Često se koriste u kodiranju, posebno u uslovnim izrazima i petljama. Operatori poređenja su:
- == … isto
- != … različito
- < … manje
- <= … manje i jednako
- >= … veće i jednako
using System;
using static System.Console;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ComparisionOperators
{
class Program
{
static void Main(string[] args)
{
WriteLine("Enter an integer number: ");
int number = Int32.Parse(ReadLine());
WriteLine($"\nYour number is {number}");
WriteLine($"\nYour number is equal 15 : { number == 15 }");
WriteLine($"\nYour number is greater than 15 : { number > 15 }");
WriteLine($"\nYour number is greater or equal 15 : { number >= 15 }");
WriteLine($"\nYour number is less than 15 : { number < 15 }");
WriteLine($"\nYour number is less or equal 15 : { number <= 15 }");
WriteLine($"\nYour number is inequal 15 : { number != 15 }");
ReadLine();
}
}
}
Enter an integer number:
45
Your number is 45
Your number is equal 15 : False
Your number is greater than 15 : True
Your number is greater or equal 15 : True
Your number is less than 15 : False
Your number is less or equal 15 : False
Your number is inequal 15 : True
Kako navedeni program radi možete videti i na video-u:
( C# 6.0 Tutorial - Fundamentals - 6. Comparision Operators )
Koje se logičke operacije najčešće koriste u C# programskom jeziku?
Logičke operacije u C# programskom jeziku se uglavnom svode na tri osnovne logičke operacije.
- && - Logical AND operator – logično I
- || - Logical OR operator – logično ILI
- ! - Logical NOT operator – logična NEGACIJA
bool x = (number < 50 || number > 25);
Šta je i kako se koristi kontrola izuzetaka prekoračenja?
Kontrola izuzetaka prekoračenja se retko koristi u programiranju zbog efikasne obrade grešaka. Ali ako baš imate potrebu za tim, možete uraditi nešto ovako:
byte x = 255;
unchecked
{
x++;
}
Molim te radi primere u visual studiu na beloj pozadini da bi mi pocetnici mogli tacno da vidimo sta kucas u liniju koda. Hvala unapred.
OdgovoriIzbrišiHvala Vam gospodine Radovanovicu na odlicnom tutorijalu. Pored toga sto ste odlicno objasnili u primerima C#, muzika na video zapisima je top.
OdgovoriIzbrišiHvala!
IzbrišiLepo ste ovo uradili. Hvala vam na uloženom radu...
OdgovoriIzbriši