Các Toán tử Trong JAVA

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:

Các Toán tử Trong JAVA
Các Toán tử Trong JAVA
  1. Toán tử Unary
  2. Toán tử toán học
  3. Toán tử Shift
  4. Toán tử quan hệ (Quá đơn giản nên tự tìm hiểu)
  5. Toán tử Bitwise
  6. Toán tử Logic
  7. Toán tử Ternary
  8. 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

Bài viết gần đây

Tìm hiểu về và tự học React

React là một thư viện JavaScript để xây dựng giao diện người dùng đã làm điên đảo giới phát triển web. React được biết...

4 Loại Access Modifiers trong JAVA

Access Modifiers trong Java chỉ định khả năng / cấp độ truy cập hoặc phạm vi của một field, method, constructor hoặc class. Có 4 loại: private, default, protected, public

Package trong JAVA

Package trong Java có thể được phân loại theo hai dạng, built-in package (có sẵn) và user-defined package (gói do người dùng định nghĩa)

Sự khác biệt giữa Abstract Class và Interface

Cả Abstract class và Interface đều được sử dụng để đạt được sự trừu tượng nơi chúng ta có thể khai báo các phương thức trừu tượng. Cả Abstract class và Interface đều không thể được khởi tạo.

Abstract class trong JAVA

Trừu tượng là một quá trình ẩn các chi tiết triển khai và chỉ hiển thị chức năng cho người dùng. Cùng mình học cách sử dụng Abstract class trong Java

Interface trong JAVA

Interface trong Java là một cơ chế để đạt được sự trừu tượng. Có thể chỉ có các phương thức trừu tượng trong Interface, không có phần thân phương thức