IBM Tivoli Monitoring, wersja 6.2.3

Operatory i wyrażenia

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.

Operatory arytmetyczne ( +, -, *, /, **, % )
Operatory arytmetyczne wykonują na operandach działania matematyczne, takie jak dodawanie i odejmowanie. Istnieją dwa typy operatorów matematycznych: jedno i dwuargumentowe. Operatory jednoargumentowe wykonują działania z użyciem pojedynczego operandu. Operatory dwuargumentowe wykonują działania z użyciem dwóch operandów. W złożonych wyrażeniach (dwa lub więcej operandów) porządek obliczania zależy od reguł kolejności wykonywania operacji.
Jednoargumentowe operatory arytmetyczne
Operatory jednoargumentowe są operatorami arytmetycznymi, które wykonują działanie na pojedynczym operandzie. Język skryptowy rozpoznaje ujemny operator jednoargumentowy (-).

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;
Dwuargumentowe operatory arytmetyczne
Przed operatorem arytmetycznym i po nim należy wstawić pusty znak. Poniżej przedstawiono listę obsługiwanych dwuargumentowych operatorów arytmetycznych.
Tabela 1. Dwuargumentowe operatory arytmetyczne
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
Priorytety operatorów
Wyrażenia są zwykle obliczane od lewej do prawej. Złożone wyrażenia obliczane są pojedynczo. Kolejność obliczania wyrażeń określana jest według priorytetów użytych operatorów. Używana jest standardowa kolejność języka C.
  1. zmiana znaku operatorów jednoargumentowych (-)
  2. potęgowanie
  3. mnożenie, dzielenie i modulo
  4. dodawanie i odejmowanie

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.

Operator przypisania (= )
Operator przypisania (=) służy do kopiowania stałych, literałów, wyników wyrażeń zmiennych lub wyników funkcji do zmiennych. Język skryptowy nie obsługuje wielu przypisań w jednej instrukcji (takich jak a=b=c=0). Długości łańcuchów definiowane są według wielkości łańcuchów przypisanych do zmiennej i zmieniają się dynamicznie w trakcie wykonywania.
Operatory logiczne (AND, OR)
Operatory logiczne umożliwiają łączenie więcej niż jednego testu relacyjnego w jednym porównaniu. Operatory logiczne zwracają wartości TRUE (1) lub FALSE (0). Operatory logiczne mają niższy priorytet niż operatory arytmetyczne.
Tabela 2. Operatory logiczne
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.

Operatory relacyjne
Operatory relacyjne są następujące:
Tabela 3. Operatory relacyjne
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.

Porównania łańcuchów
Dwa łańcuchy uważane są za równe, jeśli są identyczne co do znaku i mają taką samą długość. Łańcuchy są porównywane znak po znaku, dopóki wszystkie znaki nie zostaną dopasowane lub jeden z łańcuchów się nie skończy. Jeśli koniec jednego łańcucha zostanie wykryty przed końcem drugiego, łańcuchy mają różną długość i nie są identyczne.

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; 
Operator konkatenacji łańcuchów (+)
Operator Plus(+) po zastosowaniu dla łańcuchów powoduje konkatenację dwóch łańcuchów. Przykład:
Str1 = "abc"; 
Str2 = "def"; 
Str3 = str1 + str2; // wynikiem jest "abcdef"


Opinie