Wyrażenia wykonują specyficzne działania, według podanych operatorów, z użyciem jednego lub dwóch operandów. Operandy mogą być stałymi, zmiennymi lub wynikiem funkcji. Operatory są arytmetyczne, logiczne i relacyjne. Tak jak w języku C, niektóre operatory pełnią zmienne funkcje, zależnie od typu danych operandów podanych w wyrażeniu.
Ujemny operator jednoargumentowy zmienia znak wyrażenia na przeciwny (i odwrotnie). Wynik netto jest taki sam, jak pomnożenie liczby przez -1. Przykład:
a = -10;
Operatory Prefix zwiększają lub zmniejszają wartość zmiennej przed rozwinięciem odwołania do obiektu, natomiast operatory Postfix zwiększają lub zmniejszają wartość zmiennej po rozwinięciu odwołania do obiektu. Przykład:
A=1; B = a++; // b będzie równe 1, a będzie równe 2; A = 1; B = ++a; // b będzie równe 2, a będzie równe 2; A= 1; B = a--; // b będzie równe 1, a będzie równe 0;
Symbol | Operacja | Przykład | Opis |
---|---|---|---|
+ | Dodawanie | a + b | Dodaje dwa operandy |
- | Odejmowanie | a - b | Odejmuje drugi operand od pierwszego |
* | Mnożenie | a * b | Mnoży dwa operandy |
/ | Dzielenie | a / b | Dzieli pierwszy operand przez drugi |
** | Potęgowanie | a ** b | Podnosi pierwszy operand do potęgi drugiego operandu |
% | Modulo |
a % b |
Dzieli pierwszy operand przez drugi i zwraca resztę z dzielenia |
Jeśli wyrażenie zawiera dwa lub więcej operatorów o takim samym priorytecie, najpierw obliczane są operatory po lewej stronie. Przykład: 10 / 2 * 5 zostanie obliczone jako (10 / 2) i wynik podzielony przez 5.
Gdy operacja o mniejszym priorytecie ma być wykonana jako pierwsza, należy ją ująć w nawiasy. Przykład: 30 / 2 + 8. Normalnie wyrażenie obliczone byłoby jako 30 dzielone przez 2, a następnie do wyniku dodane 8. Aby najpierw obliczona była operacja 2 + 8, należy zapisać wyrażenie jako 30 / (2 + 8).
W wyrażeniach nawiasy mogą być zagnieżdżane. Pierwsze obliczane są nawiasy znajdujące się wewnątrz zagnieżdżenia.
Symbol | Operacja | Przykład | Opis |
---|---|---|---|
AND && | AND |
Expr1 $$ expr2 |
Prawda, jeśli expr1 i expr2 są prawdziwe. |
OR || | LUB |
Expr1 OR expr2 |
Prawda, jeśli expr1 lub expr2 jest prawdziwe. |
Symbol | Operacja | Przykład | Opis |
---|---|---|---|
< | Mniejsze niż | a < b | Prawda, jeśli a jest mniejsze niż b. |
> | Większe niż | a GT b | Prawda, jeśli a jest większe niż b. |
== | Równe | a == b | Prawda, jeśli a jest równe b. |
!= | Nierówne | a NE b | Prawda, jeśli a nie jest równe b. |
<= | Mniejsze lub równe | a <= b | Prawda, jeśli a jest mniejsze lub równe b. |
>= | Większe lub równe | a GE b | Prawda, jeśli a jest większe lub równe b. |
Porównania muszą być wykonywane dla podobnych typów danych - łańcuch i łańcuch, liczba i liczba. Jeśli typy danych są różne, wystąpi błąd wykonywania.
Jeśli znak w łańcuchu nie pasuje do odpowiadającego mu znaku w drugim łańcuchu, porównanie jest zatrzymywane i łańcuchy uznawane są za niezgodne. W łańcuchach rozróżniana jest wielkość znaków. Przykłady:
Str1 = "abcdefg"; Str2 = "abcdefg"; Str3 = "abcdef"; Str4 = "ABCDEFG"; If (str1 == str2)... wynikiem jest warunek równe/prawda If (str1 == str3).... wynikiem jest warunek nierówne, ponieważ str3 jest krótszy niż str1 If (str1 == str4) ... wynikiem jest warunek nierówne, ponieważ znaki w łańcuchach mają różną wielkość liter;
Str1 = "abc"; Str2 = "def"; Str3 = str1 + str2; // wynikiem jest "abcdef"