Оператор (програмиране)

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

Чрез операторите в програмните езици се осъществява обработката на данни. Всеки оператор има строго определена функционалност, в зависимост от конкретния програмен език, към който принадлежи. Операторите се обозначават със символи (напр. !, %, +, || и др.) и се характеризират с: позиция спрямо аргументите си (инфиксен или постфиксен), приоритет и асоциативност.

Видове оператори[редактиране | edit source]

Операторите са обособени в отделни категории: според естеството на извършваните от тях операции и според броя аргументи, които приемат.

Според естеството на извършваните операции[редактиране | edit source]

  • аритметични - извършват математически операции (като събиране, изваждане, умножение, деление)
  • логически - извършват булеви операции върху данните и връщат булев резултат
  • побитови - работят на принципа на логическите оператори, но върху двoичното представяне на числата.
  • за сравнение - извършват операции за сравнение на две или повече операнди
  • за присвояване - присвояват стойност на дадена променлива

Според броя на аргументите[редактиране | edit source]

  • едноаргументни (на английски: unary) - приема един аргумент
  • двуаргументни (на английски: binary) - приема два аргумента
  • триаргументни (на английски: ternary) - приема три аргумента

Предефиниране на оператори[редактиране | edit source]

Предефинирането на оператори в обектно-ориентираното програмиране позволява дефиниране на различна функционалност на вече съществуващи оператори, в зависимост от типовете, върху които се използват. Те могат да бъдат предефинирани както от езика (напр. в C# и Java аритметичният оператор + може да означава събиране на числа или конкатениране на стрингове), така и от програмиста (напр. в C++).

Операторите в различните програмни езици[редактиране | edit source]

C# Java C++ JavaScript PHP
Аритметични
Отрицание - - - - -
Събиране + + + + +
Изваждане - - - - -
Умножение * * * * *
Деление / / / / /
Деление по модул  %  %  %  %  %
Инкрементиране ++ ++ ++ ++ ++
Декрементиране -- -- -- -- --
За присвояване
Присвояване = = = = =
Прибавяне и присвояване += += += += +=
Изваждане и присвояване -= -= -= -= -=
Умножение и присвояване *= *= *= *= *=
Деление и присвояване /= /= /= /= /=
Деление по модул и присвояване  %=  %=  %=  %=  %=
Побитово "И" и присвояване &= &= &= &= &=
Побитово "ИЛИ" и присвояване |= |= |= |= |=
Изключващо "ИЛИ" и присвояване ^= ^= ^= ^= ^=
Отместване вляво и присвояване <<= <<= <<= <<= <<=
Отместване вдясно и присвояване >>= >>= >>= >>>= >>=
Отместване в дясно, запълване с нули и присвояване >>>= >>>=
За сравняване
Равно == == == == ==
Идентично === ===
Различно  !=  !=  !=  !=  !=, <>
Неидентично  !==  !==
По-малко < < < < <
По-голямо > > > > >
По-малко или равно <= <= <= <= <=
По-голямо или равно >= >= >= >= >=
Логически
Логическо "И" && && && && and, &&
Логическо "ИЛИ" || || || || or, ||
Изключвщо "ИЛИ" ^ ^ xor
Логическо отрицание  !  !  !  !  !
Побитови
Побитово "И" & & & & &
Побитово "ИЛИ" | | | | |
Изключващо "ИЛИ" ^ ^ ^ ^ ^
Побитово отрицание ~ ~ ~ ~ ~
Побитово отместване вляво << << << << <<
Побитово отместване вдясно >> >> >> >> >>
Побитово отместване вдясно и запълване с нули >>> >>>
Условни  ?:,??  ?:  ?:  ?:  ?:
За работа с типове (type), as, is, typeof, sizeof (type), instanceof (type), sizeof(), typeid() typeof instanceof
Оператори за низове
Съединяване + + + .
Съединяване и присвояване += += += .=
Оператори за масиви +, ==, ===, !=, <>, !==

Операторите в C Sharp[редактиране | edit source]

Аритметични оператори[редактиране | edit source]

        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

Логически оператори[редактиране | edit source]

        bool a = true;
        bool b = false;
 
        Console.WriteLine(a && b);  // На конзолата ще се изпише False
        Console.WriteLine(a || b);  // На конзолата ще се изпише True
        Console.WriteLine(!b);  // На конзолата ще се изпише True

Побитови оператори[редактиране | edit source]

        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

Оператори за сравнение[редактиране | edit source]

        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

Условни оператори[редактиране | edit source]

        int a = 6;
        int b = 4;
        Console.WriteLine(a > b ? “a>b” : “b<=a”); // a>b

Операторите в Java[редактиране | edit source]

Аритметични оператори[редактиране | edit source]

       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

Логически оператори[редактиране | edit source]

        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

Побитови оператори[редактиране | edit source]

      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

Оператори за сравнение[редактиране | edit source]

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

Условни оператори[редактиране | edit source]

       int a = 6;
       int b = 4;
       System.out.println(a > b ? “a>b” : “b<=a”); // a>b

Източници[редактиране | edit source]

Вижте също[редактиране | edit source]