[Java căn bản] Bài 6: Toán tử trong Java

[Java căn bản] Bài 6: Toán tử trong Java

Toán tử là một phần quan trọng dùng để tính toán, so sánh, xác định quan hệ,… Toán tử được dùng phổ biến trong các hàm logic, các phép tính, xử lý quan hệ,… Trong bài viết này mình sẽ giới thiệu một số toán tử và cách sử dụng chúng cơ bản trong Java.

Các toán tử trọng Java được chia thành các nhóm sau:

Toán tử số học

Các toán tử nhóm này được sử dụng để thực hiện các phép tính trong số học. Các toán tử như sau:

  • + : phép cộng.
  • - : Phép trừ.
  • * : Phép nhân.
  • / : Phép chia.
  • % : Phép chia lấy dư.
  • ++ : Thực hiện tăng giá trị lên 1 đơn vị.
  • -- : Thiệu hiện giảm giá trị xuống 1 đơn vị.

Toán tử quan hệ

Toán tử quan hệ được sử dụng để trả về kết quả so sánh của hai vế. Các loại toán tử này bao gồm:

  • == : Nếu vế bên phải và bên trái kết bằng nhau, kết quả của toán tử sẽ là true, ngược lại là false.
  • != : Nếu vế bên phải và bên trái không bằng nhau, kết quả của toán tử sẽ là true, ngược lại là false.
  • > : Nếu vế bên trái lớn hơn vế bên phải, kết quả của toán tử sẽ là true, ngược lại là false.
  • < : Nếu vế bên phải lớn hơn vế bên trái, kết quả của toán tử sẽ là true, ngược lại là false.
  • >= : Nếu vế bên trái lớn hơn hoặc bằng vế bên phải, kết quả của toán tử sẽ là true, ngược lại là false.
  • <= : Nếu vế bên phải lớn hơn hoặc bằng vế bên trái, kết quả của toán tử sẽ là true, ngược lại là false.

Toán tử thao tác bit

Dạng toán tử này sẽ tác động vào số bit của của ký tự, làm thay đổi số bit và đưa ra một kết quả khác. Ví dụ mình cho hai số hạng là 60 và 13. Số bit của chúng lần lượt là 0011 1100 và 0000 1101. Các toán tử sau đây sẽ tác động lên các bit và làm thay đổi rõ rệt.

  • & : Sao chép các số bit có ở cả 2 và loại bỏ số bit không xuất hiện trên cả hai. ví dụ: 60&30, kết quả là 12 có số bit là 0000 1100.
  • | : Sao chép các số bit có ở một trong hai số bít. Ví dụ 60&30, kết quả là 61 có số bit là 0011 1101.
  • ^ : Loại các số bit mà cả hai cùng có ví dụ 60^30, kết quả là 49 có số bit là 0011 0001.
  • ~ : Đây là một loại toán tử đảo ngôi, Ví dụ ~60, kết quả là -60 có số bit là 1100 0011.
  • << : Toán tử dịch chuyển số bit sang trái, ví dụ 60<<2, kết quả là 240, có số bit là 1111 0000.
  • >> : Toán tử dịch chuyển số bit sang phải, ví dụ 60 >> 2 kết quả là 15, có số bit là  1111.
  • >>> : Toán tử dịch chuyển số bit sang phải và điền 0 vào chỗ trống, ví dụ 60 >>> 2 kết quả là 15, có số bit là 0000 1111.

Toán tử logic

Logic là dạng toán tử được sử dụng chủ yếu trong các hàm điều điện, để xác định hành động tiếp theo sau khi kết quả của biểu thức trả về. Các kết quả của biểu thức logic trả về là true (đúng) và false (sai). Một số toán tử logic phổ biến là:

  • && : Nếu biểu thức bên trái và bên phải cùng đúng hoặc cùng sai thì giá trị trả về sẽ là true. Ví dụ:
public class tuandc {
 static boolean a = true;
 static boolean b = true;
 public static void main(String[] args) { 
    System.out.println(a&&b);
 }
}
  • || : Hoặc biểu thức bên trái đúng hoặc biểu thức bên phải đúng sẽ trả về true. Ví dụ:
public class tuandc {
 static boolean a = false;
 static boolean b = true;
 public static void main(String[] args) { 
   System.out.println(a||b);
 }
}
  • ! : Toán tử phủ định, nếu biểu thức đúng sẽ trả về giá trị false và ngược lại. Ví dụ
public class tuandc {
 static boolean a = false;
 public static void main(String[] args) { 
    System.out.println(!a);
 }
}

Toán tử gán

Toán tử gán được sử dụng phổ biến để gán giá trị của các vế với nhau. Toán tử Gán bao gồm các loại sau:

  • = : Gán giá trị của toán hạng bên phải cho bên trái. Ví dụ A = A + 16.
  • += : Gán giá tị của toán hạng bên phải cộng với chính giá trị toán hạng bên trái cho toán hạng bên trái. Ví dụ A+=16 (tương tự A+16).
  • -= : Gán giá tị của toán hạng bên phải trừ với chính giá trị toán hạng bên trái cho toán hạng bên trái. Ví dụ A-=16 (tương tự A-16).
  • *= : Gán giá tị của toán hạng bên phải nhân với chính giá trị toán hạng bên trái cho toán hạng bên trái. Ví dụ A*=16 (tương tự A*16).
  • /= : Gán giá tị của toán hạng bên phải chia cho chính giá trị toán hạng bên trái cho toán hạng bên trái. Ví dụ A/=16 (tương tự A/16).
  • %= : Gán giá tị của toán hạng bên phải chia lấy dư với chính giá trị toán hạng bên trái cho toán hạng bên trái. Ví dụ A%=16 (tương tự A%16).
  • <<= : Xử lý như toán tử bit, nhưng gán giá trị cho biến hiện tại.
  • >>= : Xử lý như toán tử bit, nhưng gán giá trị cho biến hiện tại.
  • &= : Xử lý như toán tử bit, nhưng gán giá trị cho biến hiện tại.
  • ^= : Xử lý như toán tử bit, nhưng gán giá trị cho biến hiện tại.
  • |= : Xử lý như toán tử bit, nhưng gán giá trị cho biến hiện tại.

Và các toán tử hỗn hợp

  • Toán tử điều điện: Thường dùng để đưa ra điều kiện khi biểu thức đúng hoặc sai. Cú pháp: (bieu_thuc) ? (giatri1 neu true) : (giatri1 neu true); Ví dụ:
public class tuandc {
 static boolean a = false;
 static String M ="";
 public static void main(String[] args) { 
   M = (a==true) ? "đúng" : "sai";
 System.out.println(M);
 }
}
  • Toán tử instanceof: thường dùng để kiểm tra kiểu dữ liệu. Cú pháp: ( Object reference variable ) instanceof (class/interface type)Ví dụ:
public class tuandc {
 static String M ="Chuỗi";
 static boolean A;
 public static void main(String[] args) { 
   A = M instanceof String;
 System.out.println(A);
 }
}