Điện thoại/ Zalo
0389934723
Bài 6: Toán tử trong java
Chào các bạn!, tiếp tục với series bài này mình sẽ giới thiệu đến mọi người các toán tử trong java.
Toán tử là các kí tự được định nghĩa sẵn trong ngôn ngữ dùng để thao tác với các biến.
Trong lập trìn sẽ có các toán tử cơ bản như sau: toán tử gán, toán tử sổ học, toán tử một toán học (toán tử một ngôi), toán tử quan hệ, toán tử điều kiện, toán tử bit.
1. Toán tử gán.
Toán tử gán làm nhiệm vụ gán giá trị cho biến và được kí hiểu bởi dấu “=
“.
VD:
int age = 18;
String name = "Tran Nhu Nhong";
2. Toán tử số học.
Toán tử số học dùng để thực hiện các phép toán số học. Ngoài các phép toán cộng, trừ, nhân như toán học thì trong lập trình phép chia sẽ được chia làm hai toán tử riêng là chia lấy nguyên và chia lấy dư. Cụ thể các bạn có thể xem bảng sau:
Kí hiệu toán tử | Mô tả |
+ |
Toán tử cộng |
- |
Phép trừ |
* |
Phép nhân |
/ |
Phép chia lấy dư |
% |
Phép chia lấy phần dư |
VD:
int a = 4;
int b = 2;
a + b // 6
a - b // 2
a * b // 8
a / b // 2
a % b // 0
Ngoài ra chúng ta cũng có thế kết hợp luôn với toán tử gán ở trên bằng cách thêm dấu “=
” vào sau toán tử số học.
VD:
int a = 4;
int b = 2;
a += b // a = 6
a -= b // a = 2
a *= b // a = 8
a /= b // a = 2
a %= b // a = 0
3. Toán tử một toán hạng.
Toán tử một toán hạng (hay còn gọi là toán tử một ngôi) đây là loại toán tử chỉ làm việc với duy nhất một biến cho 1 toán hạng. Toán tử này gồm các toán hạng như sau:
Toán tử | Mô tả |
+ |
Chỉ định giá trị dương cho biến, mặc định nếu không khai báo gì thì biến sẽ có giá trị dương |
- |
Chỉ định giá trị âm cho biến |
++ |
Tăng giá trị lên 1 đơn vị. tương tự với +=1 |
-- |
Giảm giá trị đi 1 đơn vị. tương tự với -=1 |
! | Toán tử phủ định, giúp đảo ngược giá trị của biến có kiểu dữ liệu là boolean |
VD:
int a = 1; // 1
int b = +1 // 1
a++ // 2
b-- // 0
boolean flag = true;
flag = !flag; // flag = false
Đối với toán tử ++ và — . Nếu chúng ta viết trước biến (prefix) và sau biến (postfix) logic sẽ khác nhau:
- Đối với prefix thì java sẽ xử lý toán tử trước rồi gán giá trị cho biến.
- Đối với postfix thì java sẽ gán giá trị cho biến trước rồi mới xử lí toán tử.
VD:
// prefix
int a = 10;
System.out.println(a++); // output 10
System.out.println(a); // output 11
// postfix
int b = 10;
System.out.println(++b); // output 11
System.out.println(b); // output 11
4. Toán tử quan hệ.
Toán tử này được dùng để so sánh giá trị giữa các biến với sau. Kết quả của toán hạng này sẽ trả về một boolean
(true
hoặc false
).
Toán tử | Mô tả |
== |
So sánh hai giá trị có bằng nhau hay không? |
!= |
So sánh hai giá trị có khác nhau hay không? |
> |
So sánh giá trị thứ nhất có lớn hơn giá trị thứ hai hay không? |
< | So sánh giá trị thứ nhất có nhỏ hơn giá trị thứ hai hay không? |
>= |
So sánh giá trị thứ nhất có lớn hơn hoặc bằng giá trị thứ hai hay không? |
<= | So sánh giá trị thứ nhất có nhỏ hơn hoặc bằng giá trị thứ hai hay không? |
VD:
int a = 5;
int b = 6;
boolean result;
result = a b // false
result = a == b // false
result = a <= b // true
result = a <= b // false
5. Toán tử điều kiện.
Toán tử điều kiện bao gồm 2 toán tử sau.
Toán tử | Mô tả |
&& |
Toán tử này tương đương với luận lý “và” (and). Nếu như 2 giá trị bên trái và bên phải toán tử này đều đúng thì toán tử này sẽ trả về true và các trường hợp còn lại sẽ là false . |
|| |
Toán tử này tương đương với luận lý “hoặc” (or). Nếu như 2 giá trị bên trái và bên phải toán tử này có một giá trị là đúng, hoặc cả 2 cùng đúng thì toán tử sẽ trả về true , còn lại sẽ là false . |
VD: Toán tử &&
int age = 15;
int rate = 5;
boolean result;
result = age == 15 && rate == 5;
System.out.println(result); // true
result = age == 16 && rate == 5;
System.out.println(result); // false
result = age == 15 && rate == 6;
System.out.println(result); // false
result = age == 17 && rate == 6;
System.out.println(result); // false
VD: Toán tử ||
int age = 15;
int rate = 5;
boolean result;
result = age == 15 || rate == 5;
System.out.println(result); // true
result = age == 16 || rate == 5;
System.out.println(result); // true
result = age == 15 || rate == 6;
System.out.println(result); // true
result = age == 17 || rate == 6;
System.out.println(result); // false
6. Toán tử thao tác bit.
Toán tử này dùng để xử lí dữ liệu dựa trên bit cho các kiểu dữ liệu số nguyên, số thực.
Toán tử | Mô tả |
~ |
Đảo ngược giá trị bit của một số |
<< | Dịch bit của một số về bên trái |
>> |
Dịch bit của một số về bên phải |
& |
Thực hiện phép toán AND |
| |
Thực hiện phép toán OR |
^ |
Thực hiện phép toán XOR |
VD: Vì là làm việc trên bit nên có khả năng các bạn sẽ hơi khó hiểu một chút, mình sẽ giải thích chi tiết vào một bài khác về dạng toán tử này.
int a = 8;
System.out.println(Integer.toBinaryString(a)); // 8 trong binary la: 1000
System.out.println(Integer.toBinaryString(~a)); // 0111
System.out.println(Integer.toBinaryString(a << 1)); // 10000
System.out.println(Integer.toBinaryString(a <> 1)); // 0100
System.out.println(Integer.toBinaryString(a >> 2)); // 0010
System.out.println(Integer.toBinaryString(a & 2)); // 0
System.out.println(Integer.toBinaryString(a | 2)); // 1010
7. Thứ tự ưu tiên toán tử.
Toán tử trong lập trình cũng có các thứ tự ưu tiên giống như các phép toán của chúng ta ngoài đời thực (vd: nhân chia trước cộng trừ sau). Trong Java độ ưu tiên các toán tử sẽ được sắp xếp như sau (Toán tử nào có độ ưu tiên cao hơn sẽ được thực thi trước).
variable++ variable--
++variable --variable +variable -variable ~ !
* / %
+ -
<> >>>
= instanceof
== !=
&
^
|
&&
||
? :
= += -= *= /= %= &= ^= |= <>= >>>=
Trong đó: variable
tượng trưng cho tên biến.