Toán tử trong JAVA là một biểu tượng được sử dụng để thực hiện các hoạt động cụ thể. Ví dụ: +, -, *, /
Có nhiều loại toán tử trong JAVA được đưa ra dưới đây:
- Toán tử Unary
- Toán tử toán học
- Toán tử Shift
- Toán tử quan hệ (Quá đơn giản nên tự tìm hiểu)
- Toán tử Bitwise
- Toán tử Logic
- Toán tử Ternary
- Toán tử gán
1. Toán tử Unary
Các toán tử Unary trong Java chỉ yêu cầu một toán hạng. Toán tử Unary được sử dụng để thực hiện các hoạt động khác nhau, tức là:
- Tăng hoặc giảm giá trị một đơn vị
- Phủ định một biểu thức
- Đảo ngược giá trị của một Boolean
Ví dụ về toán tử ++ và —
class OperatorExample{
public static void main(String args[]){
int x=10;
System.out.println(x++);//10 (11)
System.out.println(++x);//12
System.out.println(x--);//12 (11)
System.out.println(--x);//10
}
}
Kết quả:
10
12
12
10
Lưu ý:
- ++a hay –a là thực hiện thực hiện tăng hoặc giảm trước sau đó tính toán. Cuối cùng là gán giá trị mới cho a.
- a++ hay a– là thực hiện tính toán trước sau đó mới gán giá trị cho a. Cuối cùng là gán giá trị mới cho a.
Điều này sẽ dẫn tới sự khác biệt khi tính toán trong biểu thức:
Ví dụ, cho a = 2:
- Biểu thức 7 + ++a sẽ bằng 10. Vì ++a sẽ thực hiện tăng a lên 1 đơn vị thành 3 sau đó thực hiện phép tính 7 + 3. Rồi gán giá trị đã tăng cho a. (Lúc này a = 3)
- Biểu thức 7 + a++ sẽ bằng 9. Vì phép tính 7 + 2 sẽ được thực hiện trước. Sau đó mới tăng a lên 1 đơn vị. Rồi gán giá trị đã tăng cho a. (Lúc này a = 3)
Xem ví dụ sau:
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=10;
System.out.println(a++ + ++a);//10+12=22
System.out.println(b++ + b++);//10+11=21
}
}
Kết quả:
22
21
Ví dụ về toán tử ! và ~
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=-10;
boolean c=true;
boolean d=false;
System.out.println(~a);//-11
System.out.println(~b);//9
System.out.println(!c);//false (Nghịch đảo giá trị Boolean)
System.out.println(!d);//true
}
}
Kết quả
-11
9
false
true
2. Toán tử toán học trong Java
Các Toán tử Toán học trong Java được sử dụng để thực hiện phép cộng, phép trừ, phép nhân và phép chia. Chúng hoạt động như các hoạt động toán học cơ bản.
Ví dụ về toán tử số học Java
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=5;
System.out.println(a+b);//15
System.out.println(a-b);//5
System.out.println(a*b);//50
System.out.println(a/b);//2
System.out.println(a%b);//0
}
}
Kết quả
15
5
50
2
0
Ví dụ về toán tử số học Java: Biểu thức
class OperatorExample{
public static void main(String args[]){
System.out.println(10*10/5+3-1*4/2);
}
}
Kết quả:
21
3. Toán tử dịch chuyển trong Java
Toán tử dịch chuyển trái trong Java
Toán tử dịch chuyển trái (Left shift Operator) trong Java được sử dụng để dịch chuyển tất cả các bit trong một giá trị sang bên trái theo một số lần được chỉ định.
Ví dụ về toán tử dịch chuyển trái trong Java
class OperatorExample{
public static void main(String args[]){
System.out.println(10<<2);//10*2^2=10*4=40
System.out.println(10<<3);//10*2^3=10*8=80
System.out.println(20<<2);//20*2^2=20*4=80
System.out.println(15<<4);//15*2^4=15*16=240
}
}
Kết quả:
40
80
80
240
Toán tử dịch chuyển phải trong Java
Toán tử dịch chuyển phải trong Java “>>” được sử dụng để di chuyển giá trị toán hạng bên trái sang phải theo số bit được chỉ định bởi toán hạng bên phải.
Ví dụ về toán tử dịch chuyển phải trong Java
class OperatorExample{
public static void main(String args[]){
System.out.println(10>>2);//10/2^2=10/4=2
System.out.println(20>>2);//20/2^2=20/4=5
System.out.println(20>>3);//20/2^3=20/8=2
}
}
Kết quả:
2
5
2
Ví dụ về toán tử dịch chuyển Java: >> vs >>>
class OperatorExample{
public static void main(String args[]){
//For positive number, >> and >>> works same
System.out.println(20>>2);
System.out.println(20>>>2);
//For negative number, >>> changes parity bit (MSB) to 0
System.out.println(-20>>2);
System.out.println(-20>>>2);
}
}
Kết quả:
5
5
-5
1073741819
4. Ví dụ về toán tử AND trong Java: Logic && và Bitwise &
Toán tử logic && không kiểm tra điều kiện thứ hai nếu điều kiện thứ nhất là sai. Nó chỉ kiểm tra điều kiện thứ hai nếu điều thứ nhất là đúng.
Toán tử bitwise & toán tử luôn kiểm tra cả hai điều kiện cho dù điều kiện đầu tiên là đúng hay sai.
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=5;
int c=20;
System.out.println(a<b&&a<c);//false && true = false
System.out.println(a<b&a<c);//false & true = false
}
}
Kết quả:
false
false
Ví dụ về toán tử và toán tử AND trong Java: Logic && so với Bitwise &
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=5;
int c=20;
System.out.println(a<b&&a++<c);//false && true = false
System.out.println(a);//10 Vì ĐK thứ 2 không được kiểm tra
System.out.println(a<b&a++<c);//false && true = false
System.out.println(a);//11 Vì ĐK thứ 2 được kiểm tra
}
}
false
10
false
11
5. Ví dụ về toán tử Java OR: Logic | | Và Bitwise |
Toán tử logic | | trong Java không kiểm tra điều kiện thứ hai nếu điều kiện thứ nhất là đúng. Nó chỉ kiểm tra điều kiện thứ hai nếu cái đầu tiên là sai.
Các toán tử bit | luôn kiểm tra cả hai điều kiện cho dù điều kiện đầu tiên là đúng hay sai.
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=5;
int c=20;
System.out.println(a>b||a<c);//true || true = true
System.out.println(a>b|a<c);//true | true = true
//|| vs |
System.out.println(a>b||a++<c);//true || true = true
System.out.println(a);//10 Vì ĐK thứ 2 không được kiểm tra
System.out.println(a>b|a++<c);//true | true = true
System.out.println(a);//11 Vì ĐK thứ 2 được kiểm tra
}
}
Kết quả:
true
true
true
10
true
11
6. Toán tử Ternary trong Java
Toán tử Java Ternary được sử dụng như một thay thế cho câu lệnh if-then-other và được sử dụng rất nhiều trong lập trình java. Nó là toán tử có điều kiện duy nhất có ba toán hạng.
||| Toán tử Ternary hay còn được gọi là Toán tử 3 ngôi
Ví dụ về toán tử Ternary
class OperatorExample{
public static void main(String args[]){
int a=2;
int b=5;
int min=(a<b)?a:b;
System.out.println(min);
}
}
Kết quả:
2
Một ví dụ khác vê toán tử Ternary
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=5;
int min=(a<b)?a:b;
System.out.println(min);
}
}
Kết quả:
5
7. Toán tử gán trong Java
Toán tử gán Java là một trong những toán tử phổ biến nhất. Nó được sử dụng để gán giá trị ở bên phải của nó cho toán hạng bên trái.
Ví dụ về toán tử gán trong Java
class OperatorExample{
public static void main(String args[]){
int a=10;
int b=20;
a+=4;//a=a+4 (a=10+4)
b-=4;//b=b-4 (b=20-4)
System.out.println(a);
System.out.println(b);
}
}
Kết quả:
14
16
Một ví dụ khác về toán tử Gán trong Java
class OperatorExample{
public static void main(String[] args){
int a=10;
a+=3;//10+3
System.out.println(a);
a-=4;//13-4
System.out.println(a);
a*=2;//9*2
System.out.println(a);
a/=2;//18/2
System.out.println(a);
}
}
Kết quả:
13
9
18
9
Ví dụ về toán tử gán trong Java: short
class OperatorExample{
public static void main(String args[]){
short a=10;
short b=10;
//a+=b;//a=a+b internally so fine
a=a+b;//Compile time error because 10+10=20 now int
System.out.println(a);
}
}
Kết quả:
Compile time error
class OperatorExample{
public static void main(String args[]){
short a=10;
short b=10;
a=(short)(a+b);//20 which is int now converted to short
System.out.println(a);
}
}
Kết quả:
20
Lời kết
Trên đây là tổng quan về toán tử trong Java cũng như các ví dụ về toán tử trong Java giúp bạn hiểu rõ hơn về các loại toán tử này.
Qua các bài khác, khi bạn viết chương trình nhiều hơn, các bạn sẽ hiểu cách sử dụng toán tử trong từng trường hợp thực tế.
>> Hoặc học kỹ hơn tại: Khóa học Lập trình Java tại NIIT – ICT Hà Nội