Java: Toán tử trong ngôn ngữ lập trình

1. Khái niệm về toán tử

Toán tử là các ký hiệu đặc biệt được sử dụng để thực hiện các phép toán số học hoặc logic. Chúng cho phép thực hiện các phép tính toán, so sánh, và gán giá trị để xử lý dữ liệu và thực hiện các thao tác khác nhau.

2. Phân loại toán tử

  • Toán tử số học
  • Toán tử so sánh
  • Toán tử bitwise
  • Toán tử logic
  • Toán tử gán
  • Toán tử khác

Toán tử số học

Đây là các toán tử cơ bản: +, -, *, /, %

Ví dụ minh họa:

public class OperatorDemo {
    public static void main(String[] args) {
        int x = 8;
        int y = 3;
        
        System.out.println("x + y = " + (x + y));
        System.out.println("x - y = " + (x - y));
        System.out.println("x * y = " + (x * y));
        System.out.println("x / y = " + (x / y));
        System.out.println("x % y = " + (x % y));
        System.out.println("x++ = " + (x++));
        System.out.println("x-- = " + (x--));
        System.out.println("++x = " + (++x));
    }
}

Lưu ý quan trọng về toán tử tăng/giảm:

  • Toán tử tiền tố (++x, --x): Thực hiện tăng/giảm trước, sau đó mới tính toán biểu thức.
  • Toán tử hậu tố (x++, x--): Tính toán biểu thức trước, sau đó mới thực hiện tăng/giảm.

Ví dụ minh họa:

public class PrefixPostfix {
    public static void main(String[] args) {
        int m = 10;
        int n = m++;
        int p = ++m;
        
        System.out.println("Gia tri cua n: " + n);
        System.out.println("Gia tri cua p: " + p);
    }
}

Toán tử so sánh

Toán tử so sánh là toán tử hai ngôi, dùng để kiểm tra mối quan hệ giữa hai biểu thức. Kết quả trả về là kiểu boolean.

Ví dụ minh họa:

public class ComparisonDemo {
    public static void main(String[] args) {
        int num1 = 25;
        int num2 = 40;
        
        System.out.println("num1 == num2 = " + (num1 == num2));
        System.out.println("num1 != num2 = " + (num1 != num2));
        System.out.println("num1 > num2 = " + (num1 > num2));
        System.out.println("num1 < num2 = " + (num1 < num2));
        System.out.println("num1 >= num2 = " + (num1 >= num2));
        System.out.println("num1 <= num2 = " + (num1 <= num2));
    }
}

Chú ý: Khi cần kiểm tra nhiều điều kiện liên tiếp, không được viết tắt như 3 < a < 5. Trong Java, cách viết này có ý nghĩa khác so với trong toán học.

Toán tử bitwise

Trong Java, đơn vị lưu trữ nhỏ nhất là byte, mỗi byte gồm 8 bit. Các toán tử bitwise gồm: &, |, ~, ^. Trong đó ~ là toán tử một ngôi, các toán tử còn lại là hai ngôi.

Ví dụ minh họa:

public class BitwiseDemo {
    public static void main(String[] args) {
        int val1 = 48;   // 48 = 0011 0000
        int val2 = 15;  // 15 = 0000 1111
        int result = 0;
        
        result = val1 & val2;
        System.out.println("val1 & val2 = " + result);
        
        result = val1 | val2;
        System.out.println("val1 | val2 = " + result);
        
        result = val1 ^ val2;
        System.out.println("val1 ^ val2 = " + result);
        
        result = val1 << 2;
        System.out.println("val1 << 2 = " + result);
    }
}

Toán tử logic

Toán tử logic kết nối các biến hoặc hằng số thành một biểu thức logic.

Ví dụ minh họa:

public class LogicalDemo {
    public static void main(String[] args) {
        boolean flag1 = true;
        boolean flag2 = false;
        
        System.out.println("flag1 && flag2 = " + (flag1 && flag2));
        System.out.println("flag1 || flag2 = " + (flag1 || flag2));
        System.out.println("!(flag1 && flag2) = " + !(flag1 && flag2));
    }
}

Toán tử gán

Toán tử gán được sử dụng để gán giá trị cho biến. Các toán tử gán bao gồm:

  • Toán tử gán đơn giản: =
  • Toán tử cộng gán: +=
  • Toán tử trừ gán: -=
  • Toán tử nhân gán: *=
  • Toán tử chia gán: /=
  • Toán tử modulo gán: %=
  • Toán tử dịch phải gán: >>=
  • Toán tử dịch trái gán: <<=
  • Toán tử AND bitwise gán: &=
  • Toán tử XOR bitwise gán: ^=
  • Toán tử OR bitwise gán: |=

Ví dụ minh họa:

public class AssignmentDemo {
    public static void main(String[] args) {
        int m = 7;
        int n = 14;
        int k;
        
        k = m + n;
        System.out.println("k = m + n = " + k);
        
        k += m;
        System.out.println("k += m = " + k);
        
        k -= m;
        System.out.println("k -= m = " + k);
        
        k *= m;
        System.out.println("k *= m = " + k);
        
        int temp = 21;
        temp /= m;
        System.out.println("temp /= m = " + temp);
        
        temp %= m;
        System.out.println("temp %= m = " + temp);
        
        temp >>= 2;
        System.out.println("temp >>= 2 = " + temp);
        
        temp <<= 2;
        System.out.println("temp <<= 2 = " + temp);
        
        temp &= m;
        System.out.println("temp &= m = " + temp);
        
        temp ^= m;
        System.out.println("temp ^= m = " + temp);
        
        temp |= m;
        System.out.println("temp |= m = " + temp);
    }
}

Độ ưu tiên toán tử

Độ ưu tiên toán tử xác định thứ tự thực hiện các phép toán trong biểu thức. Các toán tử có độ ưu tiên cao hơn sẽ được tính toán trước. Thứ tự độ ưu tiên từ cao đến thấp:

Dấu ngoặc đơn > Toán tử đơn ngôi > Số học > Dịch bit > So sánh > Logic > Toán tử ba ngôi > Gán

Thẻ: Java Operators arithmetic-operators bitwise-operators logical-operators

Đăng vào ngày 3 tháng 7 lúc 09:33