Chương 1. Bài 8. Toán tử trong java
Phần 1. Java Căn Bản Chương 1. Các khái niệm về Java Bài 8. Toán tử trong java
Chương 1. Bài 8. Toán tử trong java
1.10. Toán tử trong java
Toán tử trong java là một ký hiệu được sử dụng để thực hiện một phép tính/chức năng nào đó. Java cung cấp các dạng toán tử sau:
- Toán tử số học
- Toán tử bit
- Toán tử quan hệ
- Toán tử logic
- Toán tử điều kiện
- Toán tử gán
1.10.1. Toán tử số học
Các toán hạng của các toán tử số học phải ở dạng số. Các toán hạng kiểu boolean không sử dụng được, các toán hạng ký tự cho phép sử dụng loại toán tử này. Một vài kiểu toán tử được liệt kê trong bảng dưới đây.
Giả sử chúng ta có biến số nguyên a = 10 và b = 20.
Toán tử |
Mô tả |
Ví dụ |
+ |
Cộng |
a + b sẽ là 30 |
- |
Trừ |
a + b sẽ là -1 |
* |
Nhân |
a + b sẽ là 200 |
/ |
Chia |
b / a sẽ là 2 |
% |
Phép lấy modul |
b % a sẽ là 0 |
++ |
Tăng dần |
a++ sẽ là 11 |
-- |
Giảm dần |
a-- sẽ là 9 |
+= |
Cộng và gán giá trị |
a += 2 sẽ là 12 |
-= |
Trừ và gán giá trị |
a -= 2 sẽ là 8 |
*= |
Nhân và gán |
a *= 2 sẽ là 20 |
/= |
Chia và gán |
a /= 2 sẽ là 5 |
%= |
Lấy số dư và gán |
a /= 8 sẽ là 2 |
1.10.2. Toán tử Bit
Các toán tử dạng bit cho phép chúng ta thao tác trên từng bit riêng biệt trong các kiểu dữ liệu nguyên thuỷ.
Toán tử |
Mô tả |
~ |
Phủ định NOT |
& |
Toán tử AND |
| |
Toán tử OR |
^ |
Toán tử Exclusive OR |
>> |
Dịch phải |
<< |
Dịch trái |
1.10.3. Các toán tử quan hệ
Các toán tử quan hệ được sử dụng kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị Boolean (logic “true” hoặc “false”). Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Toán tử |
Mô tả |
== |
So sánh bằng |
!= |
So sánh khác |
> |
Lớn hơn |
< |
Nhỏ hơn |
>= |
Lớn hơn hoặc bằng |
<= |
Nhỏ hơn hoặc bằng |
1.10.4. Các toán tử logic
Các toán tử logic làm việc với các toán hạng Boolean. Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Toán tử |
Mô tả |
&& |
Toán tử và (AND) |
|| |
Toán tử hoặc (OR) |
^ |
Toán tử XOR |
! |
Toán tử phủ định (NOT) |
1.10.5. Các toán tử điều kiện
Toán tử điều kiện là một loại toán tử đặc biệt vì nó bao gồm ba thành phần cấu thành biểu thức điều kiện. Cú pháp:
<biểu thức 1> ? <biểu thức 2> : <biểu thức 3>; |
- biểu thức 1: Biểu thức logic. Trả trả về giá trị True hoặc False
- biểu thức 2: Là giá trị trả về nếu xác định là True
- biểu thức 3: Là giá trị trả về nếu xác định là False
Ví dụ:
1 2 3 4 5 6 7 8 9 |
public class Test { public static void main(String[] args) { int a = 20; int b = 3; String s = (a % b == 0) ? "a chia het cho b" : "a khong chia het cho b"; System.out.println(s); } } |
Kết quả:
a khong chia het cho b
1.10.6. Toán tử gán
Toán tử gán (=) dùng để gán một giá trị vào một biến và có thể gán nhiều giá trị cho nhiều biến cùng một lúc.
Ví dụ:
|
int var = 20; int p,q,r,s; p=q=r=s=var; |
Trong ví dụ trên, đoạn lệnh sau gán một giá trị cho biến var và giá trị này lại được gán cho nhiều biến trên một dòng lệnh đơn.
Dòng lệnh cuối cùng được thực hiện từ phải qua trái. Đầu tiên giá trị ở biến var được gán cho ‘s’, sau đó giá trị của ‘s’ được gán cho ‘r’ và cứ tiếp như vậy.
1.10.7. Thứ tụ ưu tiên của các toán tử
Thứ tự ưu tiên quyết định trật tự thực hiện các toán tử trên các biểu thức. Bảng dưới đây liệt kê thứ tự thực hiện các toán tử trong Java
Toán tử |
Mô tả |
1 |
Các toán tử đơn như +,-,++,-- |
2 |
Các toán tử số học và các toán tử dịch như *,/,+,-,<<,>> |
3 |
Các toán tử quan hệ như >,<,>=,<=,= =,!= |
4 |
Các toán tử logic và Bit như &&,||,&,|,^ |
5 |
Các toán tử gán như =,*=,/=,+=,-= |
1.10.8. Thay đổi thứ tự ưu tiên của các toán tử
Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc đơn ():
- Phần được giới hạn trong ngoặc đơn được thực hiện trước.
- Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong sẽ thực thi trước, sau đó đến các vòng phía ngoài.
- Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ nguyên tác dụng.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 |
public class Test { public static void main(String[] args) { int a = 20; int b = 5; int c = 10; System.out.println("a + b * c = " + (a + b * c)); System.out.println("(a + b) * c = " + ((a + b) * c)); System.out.println("a / b - c = " + (a / b - c)); System.out.println("a / (b - c) = " + (a / (b - c))); } } |
Kết quả:
a + b * c = 70
(a + b) * c = 250
a / b - c = -6
a / (b - c) = -4
1.11. Hệ thống Unicode trong java
1.11.1 Hệ thống Unicode
Unicode là một kiểu mã hóa ký tự chuẩn quốc tế. Unicode được sử dụng trong hầu hết các ngôn ngữ văn bản điện tử của thế giới.
1.11.2. Tại sao Java sử dụng Hệ thông Unicode
Trước khi có Unicode, đã có rất nhiều tiêu chuẩn khác:
- ASCII (American Standard Code for Information Interchange) được sử dụng ở Hoa Kỳ
- ISO 8859-1 được sử dụng ở Tây Âu
- KOI-8 được sử dụng ở Nga
- GB18030 and BIG-5
Và như vậy, có 2 vẫn đề xảy ra!
- Thứ nhất, Một giá trị mã cụ thể tương ứng với ký tự khác nhau trong các tiêu chuẩn ngôn ngữ khác nhau.
- Thứ hai, Các kiểu mã hóa cho các ngôn ngữ với tập các ký tự lớn có biến length. Nhiều ký tự thông dụng được mã hóa thành 1 byte, những ký tự khác yêu cầu 2 hoặc nhiều byte.
Để giải quyết vấn đề này, có một vài chuẩn mã hóa ký tự được ra đời, trong đó có Unicode.
Trong Unicode, mỗi ký tự chiếm 2 byte, Vì thế java cũng sử dụng 2 byte cho mỗi ký tự.
Giá trị nhỏ nhất: \u0000
Giá trị lớn nhất: \uFFFF
Bài học trước:
Bài 7. Các kiểu dữ liệu và ép kiểu trong Java
Bài học kế tiếp:
Chương 2. Mệnh đề điều kiện.
Bài 9. Mệnh đề if-else trong java