Java - podstawowe operatory
Java udostępnia bogaty zestaw operatorów do manipulowania zmiennymi. Możemy podzielić wszystkie operatory Java na następujące grupy -
- Operatory arytmetyczne
- Operatorzy relacyjni
- Operatory bitowe
- Operatory logiczne
- Operatory przypisania
- Różne operatory
Operatory arytmetyczne
Operatory arytmetyczne są używane w wyrażeniach matematycznych w taki sam sposób, jak w algebrze. W poniższej tabeli wymieniono operatory arytmetyczne -
Załóżmy, że zmienna całkowita A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykłady
Operator | Opis | Przykład |
---|---|---|
+ (Dodawanie) | Dodaje wartości po obu stronach operatora. | A + B da 30 |
- (odejmowanie) | Odejmuje operand po prawej stronie od operandu po lewej stronie. | A - B da -10 |
* (Mnożenie) | Mnoży wartości po obu stronach operatora. | A * B da 200 |
/ (Podział) | Dzieli operand po lewej stronie przez operand po prawej stronie. | B / A da 2 |
% (Moduł) | Dzieli operand po lewej stronie przez operand po prawej stronie i zwraca resztę. | B% A da 0 |
++ (przyrost) | Zwiększa wartość operandu o 1. | B ++ daje 21 |
- (Zmniejsz) | Zmniejsza wartość operandu o 1. | B-- daje 19 |
Operatory relacyjne
Istnieją następujące operatory relacyjne obsługiwane przez język Java.
Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykłady
Operator | Opis | Przykład |
---|---|---|
== (równe) | Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. | (A == B) nie jest prawdą. |
! = (różne od) | Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, warunek staje się prawdziwy. | (A! = B) jest prawdą. |
> (większe niż) | Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A> B) nie jest prawdą. |
<(mniej niż) | Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A <B) jest prawdą. |
> = (większe lub równe) | Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A> = B) nie jest prawdą. |
<= (mniejsze lub równe) | Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A <= B) jest prawdą. |
Operatory bitowe
Java definiuje kilka operatorów bitowych, które można zastosować do typów całkowitych, long, int, short, char i byte.
Operator bitowy działa na bitach i wykonuje operacje bit po bicie. Załóżmy, że a = 60 i b = 13; teraz w formacie binarnym będą wyglądać następująco -
a = 0011 1100
b = 0000 1101
-----------------
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ a = 1100 0011
W poniższej tabeli wymieniono operatory bitowe -
Załóżmy, że zmienna całkowita A ma 60, a zmienna B zawiera 13, a następnie -
Pokaż przykłady
Operator | Opis | Przykład |
---|---|---|
& (bitowe i) | Operator binarny AND kopiuje trochę do wyniku, jeśli istnieje w obu operandach. | (A i B) dadzą 12, czyli 0000 1100 |
| (bitowo lub) | Operator binarny OR kopiuje bit, jeśli istnieje w którymkolwiek operandzie. | (A | B) da 61, czyli 0011 1101 |
^ (bitowy XOR) | Binarny operator XOR kopiuje bit, jeśli jest ustawiony w jednym operandzie, ale nie w obu. | (A ^ B) da 49, czyli 0011 0001 |
~ (komplement bitowy) | Operator dopełniacza binarnego jest jednoargumentowy i powoduje „odwracanie” bitów. | (~ A) da -61, czyli 1100 0011 w postaci uzupełnienia do 2 ze względu na liczbę binarną ze znakiem. |
<< (przesunięcie w lewo) | Binarny operator przesunięcia w lewo. Wartość lewego operandu jest przesuwana w lewo o liczbę bitów określoną przez prawy operand. | << 2 da 240, czyli 1111 0000 |
>> (prawe przesunięcie) | Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand. | >> 2 da 15, czyli 1111 |
>>> (przesunięcie w prawo z zerowym wypełnieniem) | Przesuń w prawo operator wypełnienia zerowego. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand, a przesunięte wartości są wypełniane zerami. | >>> 2 da 15, czyli 0000 1111 |
Operatory logiczne
W poniższej tabeli wymieniono operatory logiczne -
Załóżmy, że zmienne logiczne A zawierają prawdę, a zmienna B fałsz, a następnie -
Pokaż przykłady
Operator | Opis | Przykład |
---|---|---|
&& (logiczne i) | Nazywany operatorem logicznym AND. Jeśli oba operandy są niezerowe, warunek staje się prawdziwy. | (A && B) jest fałszem |
|| (logiczne lub) | Nazywany operatorem logicznym OR. Jeśli którykolwiek z dwóch operandów jest niezerowy, warunek staje się prawdziwy. | (A || B) jest prawdą |
! (nie logiczne) | Nazywany operatorem logicznym NOT. Służy do odwracania stanu logicznego operandu. Jeśli warunek jest spełniony, operator logiczny NOT spowoduje fałsz. | ! (A && B) jest prawdą |
Operatory przypisania
Poniżej przedstawiono operatory przypisania obsługiwane przez język Java -
Pokaż przykłady
Operator | Opis | Przykład |
---|---|---|
= | Prosty operator przypisania. Przypisuje wartości z operandów po prawej stronie do operandów po lewej stronie. | C = A + B przypisze wartość A + B do C. |
+ = | Dodaj operator przypisania AND. Dodaje prawy operand do lewego operandu i przypisuje wynik do lewego operandu. | C + = A jest równoważne C = C + A |
- = | Operator odejmowania AND przypisania. Odejmuje prawy operand od lewego operandu i przypisuje wynik lewemu operandowi. | C - = A jest równoważne C = C - A |
* = | Operator mnożenia AND przypisania. Mnoży prawy operand z lewym operandem i przypisuje wynik do lewego operandu. | C * = A jest równoważne C = C * A |
/ = | Operator dzielenia AND przypisania. Dzieli lewy operand z prawym operandem i przypisuje wynik lewemu operandowi. | C / = A jest równoważne C = C / A |
% = | Operator modułu AND przypisania. Pobiera moduł używając dwóch operandów i przypisuje wynik do lewego operandu. | C% = A jest równoważne C = C% A |
<< = | Operator przesunięcia w lewo AND przypisania. | C << = 2 to to samo, co C = C << 2 |
>> = | Operator prawego przesunięcia AND przypisania. | C >> = 2 to to samo, co C = C >> 2 |
& = | Operator przypisania bitowego AND. | C & = 2 to to samo, co C = C & 2 |
^ = | bitowe wykluczające OR i operator przypisania. | C ^ = 2 to to samo, co C = C ^ 2 |
| = | bitowy operator OR i przypisanie. | C | = 2 to to samo, co C = C | 2 |
Różni operatorzy
Istnieje kilka innych operatorów obsługiwanych przez język Java.
Operator warunkowy (?:)
Operator warunkowy jest również znany jako ternary operator. Ten operator składa się z trzech operandów i służy do obliczania wyrażeń boolowskich. Celem operatora jest podjęcie decyzji, jaką wartość należy przypisać zmiennej. Operator jest zapisywany jako -
variable x = (expression) ? value if true : value if false
Oto przykład -
Example
public class Test {
public static void main(String args[]) {
int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
To da następujący wynik -
Output
Value of b is : 30
Value of b is : 20
instanceof Operator
Ten operator jest używany tylko dla zmiennych odwołań do obiektów. Operator sprawdza, czy obiekt jest określonego typu (typ klasy lub typ interfejsu). operator instanceof jest zapisywany jako -
( Object reference variable ) instanceof (class/interface type)
Jeśli obiekt, do którego odwołuje się zmienna po lewej stronie operatora, przejdzie kontrolę IS-A dla typu klasy / interfejsu po prawej stronie, to wynik będzie prawdziwy. Oto przykład -
Example
public class Test {
public static void main(String args[]) {
String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}
To da następujący wynik -
Output
true
Ten operator nadal zwróci wartość true, jeśli porównywany obiekt jest przypisaniem zgodnym z typem po prawej stronie. Poniżej znajduje się jeszcze jeden przykład -
Example
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
To da następujący wynik -
Output
true
Pierwszeństwo operatorów Java
Pierwszeństwo operatorów określa grupowanie terminów w wyrażeniu. Ma to wpływ na sposób oceny wyrażenia. Niektórzy operatorzy mają wyższy priorytet niż inni; na przykład operator mnożenia ma wyższy priorytet niż operator dodawania -
Na przykład x = 7 + 3 * 2; tutaj x ma przypisane 13, a nie 20, ponieważ operator * ma wyższy priorytet niż +, więc najpierw jest mnożony przez 3 * 2, a następnie sumowany do 7.
Tutaj operatory o najwyższym priorytecie pojawiają się na górze tabeli, a operatory o najniższym priorytecie - na dole. W wyrażeniu najpierw zostaną ocenione operatory o wyższym priorytecie.
Kategoria | Operator | Łączność |
---|---|---|
Przyrostek | wyrażenie ++ wyrażenie-- | Z lewej na prawą |
Jednoargumentowe | ++ wyrażenie –- wyrażenie + wyrażenie – wyrażenie ~! | Od prawej do lewej |
Mnożny | * /% | Z lewej na prawą |
Przyłączeniowy | + - | Z lewej na prawą |
Zmiana | << >> >>> | Z lewej na prawą |
Relacyjny | <> <=> = instanceof | Z lewej na prawą |
Równość | ==! = | Z lewej na prawą |
Bitowe i | & | Z lewej na prawą |
Bitowe XOR | ^ | Z lewej na prawą |
Bitowe OR | | | Z lewej na prawą |
Logiczne AND | && | Z lewej na prawą |
Logiczne LUB | || | Z lewej na prawą |
Warunkowy | ?: | Od prawej do lewej |
Zadanie | = + = - = * = / =% = ^ = | = << = >> = >>> = | Od prawej do lewej |
Co jest następne?
W następnym rozdziale wyjaśniono sterowanie pętlami w programowaniu w języku Java. W tym rozdziale opisano różne typy pętli oraz sposób ich wykorzystania w tworzeniu programów w języku Java oraz w jakim celu są one używane.