Toán tử (Operators) trong Java
Toán tử (Operators) trong Java là các ký hiệu dùng để thực hiện các phép toán số học, hoặc phép so sánh, phép gán...
Toán tử (Operators) được chia làm các nhóm như sau:
- Toán tử số học (Arithmetic Operators)
- Toán tử quan hệ (Relational Operators)
- Toán tử dịch bit (Bitwise Operators)
- Toán tử logic (Logical Operators)
- Toán tử gán (Assignment Operators)
- Toán tử khác (Misc Operators)
Toán tử số học (Arithmetic Operators)
Toán tử (Operator) |
Diễn giải |
Ví dụ |
+
(Phép cộng - Addition)
|
Cộng 2 vế trái và phải |
10 + 5 |
-
(Phép trừ - Subtraction)
|
Trừ 2 vế trái và phải |
10 - 5 |
*
(Phép nhân - Multiplication)
|
Nhân 2 vế trái và phải |
10 * 5 |
/
(Phép chia - Division)
|
Chia 2 vế trái và phải, lấy phần nguyên. |
10 / 5
Được 2
|
%
(Phép chia lấy dư - Modulus)
|
Chia 2 vế trái và phải, lấy phần dư. |
10 % 3
Được 3, dư 1
=> kết quả trả về 1
|
++
(Phép tăng 1 đơn vị -Increment)
|
Phép tăng 1 đơn vị. |
int a = 5;
a++;
Kết quả a = 6;
|
--
(Phép giảm 1 đơn vị - Decrement)
|
Phép giảm 1 đơn vị. |
int a = 5;
a--;
Kết quả a = 4;
|
Toán tử quan hệ (Relational Operators)
Operator |
Description |
Example |
== (equal to)
CÓ BẰNG NHAU KHÔNG?
|
Kiểm tra vế trái có BẰNG vế phải hay không?
Nếu đúng thì trả về true , nếu không trả về false
|
int a = 3;
int b = 8;
a == b;
// false
|
!= (not equal to)
CÓ KHÔNG BẰNG NHAU KHÔNG?
|
Kiểm tra vế trái có BẰNG vế phải hay không?
Nếu đúng thì trả về true , nếu không trả về false
|
int a = 3;
int b = 8;
a != b;
// true
|
> (greater than)
CÓ LỚN HƠN KHÔNG?
|
Kiểm tra vế trái có BẰNG vế phải hay không?
Nếu đúng thì trả về true , nếu không trả về false
|
int a = 3;
int b = 8;
a > b;
// false
|
< (less than)
CÓ NHỎ HƠN KHÔNG?
|
Kiểm tra vế trái có BẰNG vế phải hay không?
Nếu đúng thì trả về true , nếu không trả về false
|
int a = 3;
int b = 8;
a < b;
// true
|
>= (greater than or equal to)
CÓ LỚN HƠN HAY BẰNG NHAU KHÔNG?
|
Kiểm tra vế trái có BẰNG vế phải hay không?
Nếu đúng thì trả về true , nếu không trả về false
|
int a = 3;
int b = 8;
a >= b;
// false
|
<= (less than or equal to)
CÓ NHỎ HƠN HAY BẰNG NHAU KHÔNG?
|
Kiểm tra vế trái có BẰNG vế phải hay không?
Nếu đúng thì trả về true , nếu không trả về false
|
int a = 3;
int b = 8;
a <= b;
// true
|
Toán tử dịch bit (Bitwise Operators)
Cho ví dụ sau:
a = 0011 1100 // 60 dec
b = 0000 1101 // 13 dec
a&b = 0000 1100 // 12 dec
a|b = 0011 1101 // 61 dec
a^b = 0011 0001 // 49 dec
~a = 1100 0011 // -61 dec
Operator |
Description |
Example |
& (bitwise and) |
Phép AND bit |
a & b = 0000 1100 // 12 in decimal
|
| (bitwise or) |
Phép OR bit |
a | b = 0011 1101 // 61 in decimal
|
^ (bitwise XOR) |
Phep XOR bit |
a ^ b = 0011 0001 // 49 in decimal
|
⁓ (bitwise compliment) |
Phép đảo bit |
~a = 1100 0011 // -61 in decimal
|
<< (left shift) |
Phép dịch bit sang trái |
a << 2 = 1111 0000 // 240 in decimal
|
>> (right shift) |
Phép dịch bit sang phải |
a >> 2 = 1111 // 15 in decimal
|
>>> (zero fill right shift) |
Phép dịch bit sang phải với zero fill operator |
a >>> 2 = 1111 // 15 in decimal |
Toán tử luận lý (Logical Operators)
Operator |
Description |
Example |
&& (phép and)
PHÉP VÀ
|
So sánh điều kiện A và B.
Khi cả 2 điều kiện A và B cùng đúng thì trả về true , nếu không trả về false
|
(A && B) is false |
|| (phép or)
PHÉP HOẶC
|
So sánh điều kiện A và B.
Khi một trong các điều kiện A hoặc B đúng thì trả về true , nếu không trả về false
|
(A || B) is true |
! (phép NOT)
PHÉP PHỦ
|
Trả về kết quả phủ định (ngược lại) với kết quả so sanh ban đầu |
!(A && B) is true |
Toán tử gán (Assignment Operators)
Operator |
Description |
Example |
= |
Gán giá trị của vế phải vào vế trái. |
c = a + b |
+= |
Tự tăng giá trị vế trái. |
c += a <=> c = c + a |
-= |
Tự giảm giá trị vế trái. |
c -= a <=> c = c - a |
*= |
Tự nhân giá trị của vế trái. |
c *= a <=> c = c * a |
/= |
Tự chia giá trị của vế trái. |
c /= a <=> c = c / a |
%= |
Tự chia lấy dư giá trị của vế trái. |
c %= a <=> c = c % a |
<<= |
Tự dịch bit sang trái giá trị của vế trái |
c <<= a <=> c = c << a |
>>= |
Tự dịch bit sang phải giá trị của vế trái |
c >>= a <=> c = c >> a |
&= |
Tự thực hiện phép AND bit giá trị của vế trái |
c &= a <=> c = c & a |
^= |
Tự thực hiện phép XOR bit giá trị của vế trái |
c ^= a <=> c = c ^ a |
|= |
Tự thực hiện phép OR bit giá trị của vế trái |
c |= a <=> c = c | a |
Toán tử khác (Misc Operators)
Toán tử so sánh điều kiện (hay còn gọi là IF NGẮN)
- Sử dụng toán tử:
? :
- Cú pháp
variable x = (expression) ? value if true : value if false;
String chaoHoi = (tuoi > 18) ? "Xin chào người lớn" : "Xin chào trẻ em";
Độ ưu tiên của các toán tử (Operators Precedence)
Độ ưu tiên được xếp từ cao đến thấp trong bảng sau:
Category |
Toán tử (Operator) |
Thứ tự thực hiện
(Associativity)
|
Postfix |
expression++ expression-- |
Left to right |
Unary |
++expression --expression +expression -expression ⁓ ! |
Right to left |
Multiplicative |
* / % |
Left to right |
Additive |
+ - |
Left to right |
Shift |
<< >> >>> |
Left to right |
Relational |
< > <= >= instanceof |
Left to right |
Equality |
== != |
Left to right |
Bitwise AND |
& |
Left to right |
Bitwise XOR |
^ |
Left to right |
Bitwise OR |
| |
Left to right |
Logical AND |
&& |
Left to right |
Logical OR |
|| |
Left to right |
Conditional |
?: |
Right to left |
Assignment |
= += -= *= /= %= ^= |= <<= >>= >>>= |
Right to left |
|