Оператор (програмиране)
- Вижте пояснителната страница за други значения на Оператор.
Чрез операторите в програмните езици се осъществява обработката на данни. Всеки оператор има строго определена функционалност, в зависимост от конкретния програмен език, към който принадлежи. Операторите се обозначават със символи (напр. !, %, +, || и др.) и се характеризират с: позиция спрямо аргументите си (инфиксен или постфиксен), приоритет и асоциативност.
Видове оператори
[редактиране | редактиране на кода]Операторите са обособени в отделни категории: според естеството на извършваните от тях операции и според броя аргументи, които приемат.
Според естеството на извършваните операции
[редактиране | редактиране на кода]- аритметични – извършват математически операции (като събиране, изваждане, умножение, деление)
- логически – извършват булеви операции върху данните и връщат булев резултат
- побитови – работят на принципа на логическите оператори, но върху двоичното представяне на числата.
- за сравнение – извършват операции за сравнение на две или повече операнди
- за присвояване – присвояват стойност на дадена променлива
Според броя на аргументите
[редактиране | редактиране на кода]- едноаргументни (на английски: unary) – приема един аргумент
- двуаргументни (на английски: binary) – приема два аргумента
- триаргументни (на английски: ternary) – приема три аргумента
Предефиниране на оператори
[редактиране | редактиране на кода]Предефинирането на оператори в обектно-ориентираното програмиране позволява дефиниране на различна функционалност на вече съществуващи оператори, в зависимост от типовете, върху които се използват. Те могат да бъдат предефинирани както от езика (напр. в C# и Java аритметичният оператор + може да означава събиране на числа или конкатениране на низове), така и от програмиста (напр. в C++).
Операторите в различните програмни езици
[редактиране | редактиране на кода]C# | Java | C++ | JavaScript | PHP | |
---|---|---|---|---|---|
Аритметични | |||||
Отрицание | – | – | – | – | - |
Събиране | + | + | + | + | + |
Изваждане | – | – | – | – | - |
Умножение | * | * | * | * | * |
Деление | / | / | / | / | / |
Деление по модул | % | % | % | % | % |
Инкрементиране | ++ | ++ | ++ | ++ | ++ |
Декрементиране | -- | -- | -- | -- | -- |
За присвояване | |||||
Присвояване | = | = | = | = | = |
Прибавяне и присвояване | += | += | += | += | += |
Изваждане и присвояване | -= | -= | -= | -= | -= |
Умножение и присвояване | *= | *= | *= | *= | *= |
Деление и присвояване | /= | /= | /= | /= | /= |
Деление по модул и присвояване | %= | %= | %= | %= | %= |
Побитово „И“ и присвояване | &= | &= | &= | &= | &= |
Побитово „ИЛИ“ и присвояване | |= | |= | |= | |= | |= |
Изключващо „ИЛИ“ и присвояване | ^= | ^= | ^= | ^= | ^= |
Отместване вляво и присвояване | <<= | <<= | <<= | <<= | <<= |
Отместване вдясно и присвояване | >>= | >>= | >>= | >>>= | >>= |
Отместване вдясно, запълване с нули и присвояване | >>>= | >>>= | |||
За сравняване | |||||
Равно | == | == | == | == | == |
Идентично | === | === | |||
Различно | != | != | != | != | !=, <> |
Неидентично | !== | !== | |||
По-малко | < | < | < | < | < |
По-голямо | > | > | > | > | > |
По-малко или равно | <= | <= | <= | <= | <= |
По-голямо или равно | >= | >= | >= | >= | >= |
Логически | |||||
Логическо „И“ | && | && | && | && | and, && |
Логическо „ИЛИ“ | || | || | || | || | or, || |
Изключвщо „ИЛИ“ | ^ | ^ | xor | ||
Логическо отрицание | ! | ! | ! | ! | ! |
Побитови | |||||
Побитово „И“ | & | & | & | & | & |
Побитово „ИЛИ“ | | | | | | | | | | |
Изключващо „ИЛИ“ | ^ | ^ | ^ | ^ | ^ |
Побитово отрицание | ~ | ~ | ~ | ~ | ~ |
Побитово отместване вляво | << | << | << | << | << |
Побитово отместване вдясно | >> | >> | >> | >> | >> |
Побитово отместване вдясно и запълване с нули | >>> | >>> | |||
Условни | ?:,?? | ?: | ?: | ?: | ?:,?? |
За работа с типове | (type), as, is, typeof, sizeof | (type), instanceof | (type), sizeof(), typeid() | typeof | instanceof |
Оператори за низове | |||||
Съединяване | + | + | + | . | |
Съединяване и присвояване | += | += | += | .= | |
Оператори за масиви | +, ==, ===, !=, <>, !== |
Операторите в C Sharp
[редактиране | редактиране на кода]Аритметични оператори
[редактиране | редактиране на кода] int a = 2;
int b = 3;
int result;
result = a + b; // в променливата result ще се запази сумата на a и b
result = a – b; // в променливата result ще се запази разликата на a и b
result = a * b; // в променливата result ще се запази произведението на a и b
result = a / b; // в променливата result ще се запази частното на a и b
result = a % b; // в променливата result ще се запази остатъкът от делението на a и b
result = a++; //в променливата result ще се запази стойността на променливата a, увеличена с 1
result = a--; // в променливата result ще се запази стойността на променливата a, намалена с 1
Логически оператори
[редактиране | редактиране на кода] bool a = true;
bool b = false;
Console.WriteLine(a && b); // На конзолата ще се изпише False
Console.WriteLine(a || b); // На конзолата ще се изпише True
Console.WriteLine(!b); // На конзолата ще се изпише True
Побитови оператори
[редактиране | редактиране на кода] int a = 3; // 0000 0011 = 3
int b = 5; // 0000 0101 = 5
Console.WriteLine(a | b); // 0000 0111 = 7
Console.WriteLine(a & b); // 0000 0001 = 1
Console.WriteLine(a ^ b); // 0000 0110 = 6
Console.WriteLine(~a & b); // 0000 0100 = 4
Console.WriteLine(a << 1); // 0000 0110 = 6
Console.WriteLine(a << 2); // 0000 1100 = 12
Console.WriteLine(a >> 1); // 0000 0001 = 1
Оператори за сравнение
[редактиране | редактиране на кода] int x = 10, y = 5;
Console.WriteLine(“x > y : “ + (x > y)); // true
Console.WriteLine(“x < y : “ + (x < y)); // false
Console.WriteLine(“x >= y : “ + (x >= y)); // true
Console.WriteLine(“x <= y : “ + (x <= y)); // false
Console.WriteLine(“x == y : “ + (x == y)); // false
Console.WriteLine(“x != y : “ + (x != y)); // true
Условни оператори
[редактиране | редактиране на кода] int a = 6;
int b = 4;
Console.WriteLine(a > b ? “a>b” : “b<=a”); // a>b
Операторите в Java
[редактиране | редактиране на кода]Аритметични оператори
[редактиране | редактиране на кода] int squarePerimeter = 17;
double squareSide = squarePerimeter / 4.0;
double squareArea = squareSide * squareSide;
System.out.println(squareSide); // 4.25
System.out.println(squareArea); // 18.0625
int a = 5;
int b = 4;
System.out.println(a + b); // 9
System.out.println(a + b++); // 9
System.out.println(a + b); // 10
System.out.println(a + (++b)); // 11
System.out.println(a + b); // 11
System.out.println(14 / a); // 2
System.out.println(14 % a); // 4
Логически оператори
[редактиране | редактиране на кода] boolean a = true;
boolean b = false;
System.out.println(a && b); // false
System.out.println(a || b); // true
System.out.println(!b); // true
System.out.println(b || true); // true
System.out.println((5>7) ^ (a==b)); // false
Побитови оператори
[редактиране | редактиране на кода] short a = 3; // 0000 0011 = 3
short b = 5; // 0000 0101 = 5
System.out.println(a | b); // 0000 0111 = 7
System.out.println(a & b); // 0000 0001 = 1
System.out.println(a ^ b); // 0000 0110 = 6
System.out.println(~a & b); // 0000 0100 = 4
System.out.println(a << 1); // 0000 0110 = 6
System.out.println(a << 2); // 0000 1100 = 12
System.out.println(a >> 1); // 0000 0001 = 1
Оператори за сравнение
[редактиране | редактиране на кода]int x = 10, y = 5;
System.out.println(“x > y : “ + (x > y)); // true
System.out.println(“x < y : “ + (x < y)); // false
System.out.println(“x >= y : “ + (x >= y)); // true
System.out.println(“x <= y : “ + (x <= y)); // false
System.out.println(“x == y : “ + (x == y)); // false
System.out.println(“x != y : “ + (x != y)); // true
Условни оператори
[редактиране | редактиране на кода] int a = 6;
int b = 4;
System.out.println(a > b ? “a>b” : “b<=a”); // a>b
Източници
[редактиране | редактиране на кода]- www.fmi.uni-sofia.bg Архив на оригинала от 2014-01-15 в Wayback Machine.
- www.introprogramming.info
- www.cplusplus.com
- www.php.net