Ở bài trước, chúng ta đã làm quen với biến và các kiểu dữ liệu cơ bản trong Java. Để thực sự làm việc với dữ liệu, chúng ta cần sử dụng toán tử (operators). Toán tử là các ký hiệu đặc biệt dùng để thực hiện các phép tính toán, so sánh, logic,... trên các biến và giá trị.
Trong bài viết này, chúng ta sẽ khám phá các loại toán tử khác nhau trong Java và học cách sử dụng chúng.
Các Loại Toán Tử Trong Java
Java cung cấp nhiều loại toán tử khác nhau, bao gồm:
- Toán tử số học (Arithmetic operators)
- Toán tử quan hệ (Relational operators)
- Toán tử logic (Logical operators)
- Toán tử gán (Assignment operators)
- Toán tử bitwise (Bitwise operators)
- Toán tử điều kiện (Conditional operator/Ternary operator)
Chúng ta sẽ đi vào chi tiết từng loại toán tử.
1. Toán Tử Số Học
Toán tử số học được sử dụng để thực hiện các phép tính toán số học cơ bản.
Toán tử | Mô tả | Ví dụ |
---|---|---|
+ | Cộng (Addition) | x + y |
- | Trừ (Subtraction) | x - y |
* | Nhân (Multiplication) | x * y |
/ | Chia (Division) | x / y |
% | Chia lấy dư (Modulus) | x % y |
++ | Tăng 1 (Increment) | x++ hoặc ++x |
-- | Giảm 1 (Decrement) | x-- hoặc --x |
Ví dụ:
int x = 10;
int y = 3; System.out.println(x + y); // Output: 13
System.out.println(x - y); // Output: 7
System.out.println(x * y); // Output: 30
System.out.println(x / y); // Output: 3
System.out.println(x % y); // Output: 1 x++; // Tăng x lên 1 (x = 11)
System.out.println(x); // Output: 11 y--; // Giảm y xuống 1 (y = 2)
System.out.println(y); // Output: 2
Lưu ý: Sự khác biệt giữa x++
và ++x
:
x++
(Postfix increment): Giá trị củax
được sử dụng trong biểu thức trước, sau đó mới tăngx
lên 1.++x
(Prefix increment): Giá trị củax
được tăng lên 1 trước, sau đó giá trị mới củax
được sử dụng trong biểu thức.
2. Toán Tử Quan Hệ
Toán tử quan hệ được sử dụng để so sánh hai giá trị. Kết quả của phép so sánh là một giá trị boolean (true
hoặc false
).
Toán tử | Mô tả | Ví dụ |
---|---|---|
== | Bằng (Equal) | x == y |
!= | Không bằng (Not equal) | x != y |
> | Lớn hơn (Greater than) | x > y |
< | Nhỏ hơn (Less than) | x < y |
>= | Lớn hơn hoặc bằng (Greater than or equal) | x >= y |
<= | Nhỏ hơn hoặc bằng (Less than or equal) | x <= y |
Ví dụ:
int x = 10;
int y = 5; System.out.println(x == y); // Output: false
System.out.println(x != y); // Output: true
System.out.println(x > y); // Output: true
System.out.println(x < y); // Output: false
System.out.println(x >= y); // Output: true
System.out.println(x <= y); // Output: false
3. Toán Tử Logic
Toán tử logic được sử dụng để kết hợp các biểu thức điều kiện.
Toán tử | Mô tả | Ví dụ |
---|---|---|
&& | AND (Và) - Trả về true nếu cả hai biểu thức đều true |
(x > 0) && (y < 10) |
|| | OR (Hoặc) - Trả về true nếu ít nhất một biểu thức là true |
(x > 0) || (y < 10) |
! | NOT (Phủ định) - Đảo ngược giá trị của biểu thức | !(x > 0) |
Ví dụ:
int x = 10;
int y = 5; System.out.println((x > 0) && (y < 10)); // Output: true
System.out.println((x < 0) || (y < 10)); // Output: true
System.out.println(!(x < 0)); // Output: true
4. Toán Tử Gán
Toán tử gán được sử dụng để gán giá trị cho biến.
Toán tử | Mô tả | Ví dụ | Tương đương |
---|---|---|---|
= | Gán giá trị | x = 5 |
|
+= | Cộng và gán | x += 5 |
x = x + 5 |
-= | Trừ và gán | x -= 5 |
x = x - 5 |
*= | Nhân và gán | x *= 5 |
x = x * 5 |
/= | Chia và gán | x /= 5 |
x = x / 5 |
%= | Chia lấy dư và gán | x %= 5 |
x = x % 5 |
Ví dụ:
int x = 10; x += 5;
System.out.println(x); // Output: 15 x -= 3;
System.out.println(x); // Output: 12 x *= 2;
System.out.println(x); // Output: 24
5. Toán Tử Bitwise (Ít Dùng Cho Người Mới Bắt Đầu)
Toán tử bitwise thực hiện các phép toán trên các bit của số nguyên.
Toán tử | Mô tả | Ví dụ |
---|---|---|
& | AND (Và) | x & y |
| | OR (Hoặc) | x | y |
^ | XOR (Hoặc loại trừ) | x ^ y |
~ | NOT (Phủ định) | ~x |
<< | Left Shift (Dịch trái) | x << 2 |
>> | Right Shift (Dịch phải) | x >> 2 |
>>> | Unsigned Right Shift (Dịch phải không dấu) | x >>> 2 |
6. Toán Tử Điều Kiện (Ternary Operator)
Toán tử điều kiện (hay còn gọi là ternary operator) là một cách ngắn gọn để viết câu điều kiện if-else
trên một dòng.
Cú Pháp:
bieu_thuc_dieu_kien ? gia_tri_neu_true : gia_tri_neu_false;
Ví dụ:
int age = 16;
String status = (age >= 18) ? "Trưởng thành" : "Chưa trưởng thành";
System.out.println(status); // Output: Chưa trưởng thành
Độ Ưu Tiên Của Các Toán Tử
Khi một biểu thức chứa nhiều toán tử, Java sẽ thực hiện các toán tử theo một thứ tự nhất định, được gọi là độ ưu tiên của các toán tử.
Bạn có thể sử dụng dấu ngoặc đơn ()
để thay đổi thứ tự thực hiện các toán tử.
Ví dụ:
int x = 10 + 5 * 2; // Phép nhân được thực hiện trước phép cộng
System.out.println(x); // Output: 20 x = (10 + 5) * 2; // Phép cộng được thực hiện trước phép nhân
System.out.println(x); // Output: 30
Kết luận:
Trong bài viết này, chúng ta đã tìm hiểu về các loại toán tử khác nhau trong Java. Nắm vững kiến thức này sẽ giúp bạn thực hiện các phép tính toán, so sánh và logic một cách hiệu quả trong chương trình của mình.
Trong bài viết tiếp theo, chúng ta sẽ cùng nhau tìm hiểu về câu điều kiện và vòng lặp trong Java.
Bạn đã thử sử dụng các toán tử khác nhau chưa? Hãy chia sẻ với chúng tôi trong phần bình luận! Bạn có câu hỏi nào về toán tử không?