Các biểu thức toán học trong lập trình năm 2024

Toán tử (operator) là các ký tự hoặc ký hiệu đặc biệt được sử dụng để thực hiện các phép tính trên các giá trị hoặc biến.

1. Phân loại toán tử cơ bản

Đây là các loại toán tử gần như đều có mặt ở tất cả các loại ngôn ngữ lập trình mà bạn dự định học sau này như: java, c++, c#, php, swift, ...

Đây là các loại toán tử cơ bản thường được sử dụng trong lập trình. Việc hiểu và sử dụng các toán tử này là rất quan trọng để viết mã lệnh hiệu quả và hiểu được các chương trình phức tạp hơn.

Toán tử số học (arithmetec operator)

Các biểu thức toán học trong lập trình năm 2024

Được sử dụng để thực hiện các phép tính số học trên các giá trị số. Như cộng, trừ, nhân, chia, chia lấy dư...

  • Phép cộng: +
  • Phép trừ: -
  • Phép nhân: *
  • Phép chia: /
  • Chia lấy dư: %

Ví dụ

int a = 10;  
int b = 5;  
int c = a + b; // c = 15  
int d = a - b; // d = 5  
int e = a * b; // e = 50  
int f = a / b; // f = 2  
int g = a % b; // g = 0  

Toán tử so sánh

Các biểu thức toán học trong lập trình năm 2024

Được sử dụng để so sánh các giá trị và trả về kết quả là giá trị boolean (true hoặc false).

  • So sánh bằng: ==
  • So sánh không bằng: !=
  • So sánh lớn hơn: >
  • So sánh nhỏ hởn: <
  • So sánh lớn hơn hoặc bằng: >=
  • So sánh bé hơn hoặc bằng: <=

Ví dụ:

int a = 10;  
int b = 5;
boolean c = (a == b); // c = false  
boolean d = (a != b); // d = true  
boolean e = (a > b); // e = true  
boolean f = (a < b); // f = false  
boolean g = (a >= b); // g = true  
boolean h = (a <= b); // h = false  

Toán tử gán (Assignment operator)

Các biểu thức toán học trong lập trình năm 2024

Được sử dụng để gán giá trị cho một biến.

  • Gán: =
  • Gán và cộng giá trị: =+
  • Gán và trừ giá trị: -=
  • Nhân và gán: *=
  • Chia và gán: /=
  • Chia lấy dư và gán: %=

Ví dụ

int a = 10;  
int b = 5;
a += b; // tương đương với a = a + b; a = 15  
a -= b; // tương đương với a = a - b; a = 10  
a *= b; // tương đương với a = a * b; a = 50  
a /= b; // tương đương với a = a / b; a = 10  
a %= b; // tương đương với a = a % b; a = 0

Toán tử logic (logical operator)

Các biểu thức toán học trong lập trình năm 2024

Các toán tử logic được sử dụng để thực hiện các phép tính logic trên các giá trị boolean (true hoặc false). Các toán tử logic thường được sử dụng để kiểm tra điều kiện trong các câu lệnh điều kiện hoặc vòng lặp, và trả về giá trị boolean là true hoặc false.

  • Toán tử và (&&) : (Trả về true nếu hai biểu thức đều đúng, ngược lại thì false)
  • Toán tử hoặc (||) : Trả về true nếu một trong hai biểu thức đúng
  • Toản tử phủ định (!) : Đảo ngược kết quả của biểu thức, trả về sai nếu biểu thức đúng và ngược lại

Ví dụ:

int a = 5;  
int b = 10;  
int c = 15;
if (a < b && b < c) {  
    System.out.println("a nhỏ hơn  b, và b nhỏ hơn c");  
}  

Trong ví dụ trên, toán tử && được sử dụng để kiểm tra xem a có nhỏ hơn b và b có nhỏ hơn c không. Nếu cả hai điều kiện đều đúng, thì câu lệnh trong khối if sẽ được thực hiện.

2. Phân loại một số toán tử nâng cao

Sau đây mình sẽ liệt kê một số toán tử nâng cao, tuy nhiên không phải ngôn ngữ lập trình nào cũng hỗ trợ hoàn toàn các loại toán tử này.

Toán tử bit (bitwise operator)

Các biểu thức toán học trong lập trình năm 2024

Được sử dụng để thực hiện các phép tính bit trên các giá trị nhị phân. Mấy loại toán tử này thì đau đầu lắm, bạn nào sau này đụng tới nên tìm hiểu kỹ không thì chúng ta biết nó có tồn tại là được rồi.

  • Và bit: &
  • Hoặc bit: |
  • Xor bit: ^
  • Đảo bit: ~
  • Dịch trái bit: <<
  • Dịch phải bit: >>
  • Dịch phải bit không dấu: >>>

Ví dụ:

int a = 60;     // 60 = 0011 1100 (ở hệ nhị phân)  
int b = 13;     // 13 = 0000 1101 (ở hệ nhị phân)  
int c = a & b;  // 12 = 0000 1100 (và bit)  
int d = a | b;  // 61 = 0011 1101 (hoặc bit)  
int e = a ^ b;  // 49 = 0011 0001 (xor bit)  
int f = ~a;     // -61 = 1100 0011 (đảo bit)  
int g = a << 2; // 240 = 1111 0000 (dịch trái bit)  
int h = a >> 2; // 15 = 0000 1111 (dịch phải bit)  
int i = a >>> 2; // 15 = 0000 1111 (dịch phải bit không dấu)  

Toán tử điều kiện (conditional operator)

Các biểu thức toán học trong lập trình năm 2024

Hay còn gọi là toán tử ba ngôi, được sử dụng để thực hiện các phép tính dựa trên một điều kiện. Nó như là một dạng rút gọn của cấu trúc điều kiện vậy đó.

  • a = b > c ? b : c (Nếu đúng thì ta gán b, nếu sai thì ta gán c đại loại nó là như thế)

Không phải ngôn ngữ lập trình nào mà bạn học trong tương lai cũng hỗ trợ toán tử này.

Ví dụ:

int a = 10;  
int b = 5;  
int max = (a > b) ? a : b; // nếu a > b thì max = a, ngược lại max = b  

Toán tử Instance of

Để kiểm tra xem một đối tượng có phải là một thể hiện của lớp hay không.

Object obj = new String("Hello");  
boolean isString = obj instanceof String; // isString = true  
boolean isInteger = obj instanceof Integer; // isInteger = false  

II. Biểu thức (expression) là gì?

Các biểu thức toán học trong lập trình năm 2024

Trong lập trình, biểu thức (expression) là một đoạn mã được sử dụng để tính toán một giá trị. Biểu thức có thể bao gồm các giá trị như số, chuỗi, biến, hằng số, các toán tử và các hàm số.

Biểu thức có thể được tính toán để tạo ra một giá trị mới, và giá trị này có thể được gán cho một biến hoặc sử dụng trong một câu lệnh khác.

Các biểu thức trong lập trình có thể đơn giản hoặc phức tạp, và có thể bao gồm nhiều toán tử và toán hạng. Các toán hạng có thể là các giá trị đơn giản hoặc các biểu thức khác. Các biểu thức có thể được sử dụng trong nhiều ngữ cảnh khác nhau, bao gồm tính toán giá trị, kiểm tra điều kiện, lặp lại các hành động và xử lý thông tin đầu vào.

int a = 5 + 3; // biểu thức 5 + 3 tính toán và trả về giá trị 8
String hello = "Hello " + "world"; // biểu thức "Hello " + "world" ghép chuỗi và trả về giá trị "Hello world"
boolean isTrue = (a > 10) && (hello.length() > 5); // biểu thức (a > 10) && (hello.length() > 5) kiểm tra điều kiện và trả về giá trị true hoặc false  

III. Độ ưu tiên của các toán tử

Trong lập trình, các toán tử có độ ưu tiên khác nhau, dẫn đến sự thực hiện các phép tính theo một thứ tự nhất định. Nếu có nhiều toán tử xuất hiện trong một biểu thức, thì các toán tử có độ ưu tiên cao hơn sẽ được thực hiện trước. Nếu có các toán tử có cùng độ ưu tiên xuất hiện trong cùng một biểu thức, thì thứ tự thực hiện sẽ được xác định bởi quy tắc kết hợp từ trái sang phải.

Sau đây là những mức độ ưu tiên được sắp sếp theo từ cao nhất đến thấp nhất:

1 Ngoặc đơn hoặc ngoặc kép (Từ trong ra ngoài, ngoặc trong nhất ưu tiên nhất rồi cứ theo thứ tự).

2 Toán tử phủ định hoặc logic.

3 Toán tử nhân, chia, chia lấy dư (Giống như chúng ta học toán, nhân chia trước cộng trừ sau vậy đó).