Mục lục
Java cung cấp một tập hợp các toán tử phong phú để thao tác với các biến. Chúng ta có thể chia các toán tử ra các loại chính như sau:
- Toán tử số học
- Toán tử quan hệ
- Toán tử Bitwise
- Toán tử Logic
- Toán tử gán
Toán tử số học
Toán tử số học được dùng trong các biểu thức toán học.
Chúng ta có danh sách các toán tử số học
Ví dụ giả sử A = 10, B = 5
Toán tử | Mô tả | Ví dụ |
+ | Phép cộng | C = A + B = 15 |
– | Phép trừ | C = A – B = 5 |
* | Phép nhân | C = A * B = 150 |
/ | Phép chia lấy nguyên | C = A / B = 2 |
% | Phép chia lấy dư | C = A % B = 0 |
++ | Tăng giá trị lên 1 | A++ ta nhận được A là 21 |
— | Giảm giá trị đi 1 | B– ta nhận được 4 |
public class Main { public static void main(String[] args) { int a = 10, b = 5; int c; c = a + b; System.out.println("Ket qua phep (+): " + c); c = a - b; System.out.println("Ket qua phep (-): " + c); c = a * b; System.out.println("Ket qua phep (*): " + c); c = a / b; System.out.println("Ket qua phep (/): " + c); c = a % b; System.out.println("Ket qua phep (%): " + c); a++; System.out.println("Ket qua phep (++): " + a); b--; System.out.println("Ket qua phep (--): " + b); } }
Output:
Ket qua phep (+): 15
Ket qua phep (-): 5
Ket qua phep (*): 50
Ket qua phep (/): 2
Ket qua phep (%): 0
Ket qua phep (++): 11
Ket qua phep (–): 4
Toán tử quan hệ
Kết quả của toán tử quan hệ ta nhận được là boolean (true hoặc false).
Giả sử A = 10 và B = 5
Toán tử | Mô tả | Ví dụ |
== | So sánh bằng | A == B => false |
!= | So sánh khác | A != B => true |
> | So sánh lớn hơn | A > B => true |
< | So sánh bé hơn | A < B => false |
>= | So sánh lớn hơn hoặc bằng | A >= B => true |
<= | So sánh bé hơn hoặc bằng | A <= B => true |
public class Main { public static void main(String[] args) { int a = 10, b = 5; boolean c; c = a == b; System.out.println("Ket qua phep (==): " + c); c = a != b; System.out.println("Ket qua phep (-): " + c); c = a > b; System.out.println("Ket qua phep (*): " + c); c = a < b; System.out.println("Ket qua phep (/): " + c); c = a >= b; System.out.println("Ket qua phep (%): " + c); c = a <= b; System.out.println("Ket qua phep (++): " + c); } }
Output:
Ket qua phep (==): false
Ket qua phep (-): true
Ket qua phep (*): true
Ket qua phep (/): false
Ket qua phep (%): true
Ket qua phep (++): false
Toán tử Bitwise
Toán tử Bitwise có thể áp dụng cho kiểu số nguyên integer, long, short, char, byte.
Giả sử A = 60, B = 13
Chuyển qua dạng nhị phân
A = 0011 1100
B = 0000 1101
Toán tử | Mô tả | Ví dụ |
& | Bitwise and | A & B = 0000 1100 |
| | Bitwise or | A || B = 0011 1101 |
^ | Bitwise xor | A ^ B = 0011 0001 |
~ | Bitwise đảo bit | ~A = 1100 0011 |
<< | Left shift | A << 2 = 1111 0000 |
>> | Right shift | A >> 2 = 1111 |
>>> | Righ shift fill zero | A >> 2 = 0000 1111 |
Sử dụng hàm Integer.toBinaryString() để chuyển một số nguyên sang số dạng bit.
public class Main { public static void main(String[] args) { int a = 60, b = 13; int c; System.out.println("bit a: " + Integer.toBinaryString(a)); System.out.println("bit b: " + Integer.toBinaryString(b)); c = a & b; System.out.println("Ket qua phep (&): " + Integer.toBinaryString(c)); c = a | b; System.out.println("Ket qua phep (|): " + Integer.toBinaryString(c)); c = a ^ b; System.out.println("Ket qua phep (^): " + Integer.toBinaryString(c)); c = ~a; System.out.println("Ket qua phep (~): " + Integer.toBinaryString(c)); c = a << 2; System.out.println("Ket qua phep (<<): " + Integer.toBinaryString(c)); c = a >>2; System.out.println("Ket qua phep (>>): " + Integer.toBinaryString(c)); c = a >>>2; System.out.println("Ket qua phep (>>>): " + Integer.toBinaryString(c)); } }
Output:
bit a: 111100
bit b: 1101
Ket qua phep (&): 1100
Ket qua phep (|): 111101
Ket qua phep (^): 110001
Ket qua phep (~): 11111111111111111111111111000011
Ket qua phep (<<): 11110000
Ket qua phep (>>): 1111
Ket qua phep (>>>): 1111
Toán tử logic
Giả sử A = true, B = false
Toán tử | Mô tả | Ví dụ |
&& | Toán tử and | A && B = false |
|| | Toán tử or | A || B = true |
! | Toán tử phủ định | !(A && B) = true |
public class Main { public static void main(String[] args) { boolean a = true, b = false; boolean c; c = a && b; System.out.println("Ket qua phep (&&): " + c); c = a || b; System.out.println("Ket qua phep (||): " + c); c = !(a && b); System.out.println("Ket qua phep (!): " + c); } }
Output:
Ket qua phep (&&): false
Ket qua phep (||): true
Ket qua phep (!): true
Toán tử gán
Toán tử | Mô tả | Ví dụ |
= | Gán giá trị cho biến | C = A + B |
+= | Tính tổng và gán lại giá trị cho biến nằm bên trái biểu thức | A += B => A = A + B |
-= | Tính hiệu và gán lại giá trị cho biến nằm bên trái biểu thức | A -= B => A – B |
*= | Tính tổng và gán lại giá trị cho biến nằm bên trái biểu thức | A *= B => A = A * B |
/= | Tính thương lấy nguyên và gán lại giá trị cho biến nằm bên trái biểu thức | A /= B => A = A / B |
%= | Tính thương lấy dư và gán lại giá trị cho biến nằm bên trái biểu thức | A %= B => A = A % B |
<<= | Bitwise Left shift và gán lại giá trị cho biến nằm bên trái biểu thức | A <<=2 => A = A << 2 |
>>= | Bitwise Right shift và gán lại giá trị cho biến nằm bên trái biểu thức | A >>=2 => A = A >> 2 |
&= | Bitwise and và gán lại giá trị cho biến nằm bên trái biểu thức | A &= 2 => A = A & 2 |
^= | Bitwise Xor và gán lại giá trị cho biến nằm bên trái biểu thức | A ^=2 => A = A ^ 2 |
|= | Bitwise Or và gán lại giá trị cho biến nằm bên trái biểu thức | A |= 2 => A = A |> 2 |
public class Main { public static void main(String[] args) { int a = 10, b = 5; int c; c = a + b; System.out.println("Ket qua phep (=): " + c); a = 10; a += b; System.out.println("Ket qua phep (+=): " + a); a = 10; a -= b; System.out.println("Ket qua phep (-=): " + a); a = 10; a *= b; System.out.println("Ket qua phep (*=): " + a); a = 10; a /= b; System.out.println("Ket qua phep (/=): " + a); a = 10; a %= b; System.out.println("Ket qua phep (%=): " + a); a = 10; a <<= 2; System.out.println("Ket qua phep (<<=): " + a); a = 10; a >>= 2; System.out.println("Ket qua phep (>>=): " + a); a = 10; a >>>= 2; System.out.println("Ket qua phep (>>>=): " + a); a = 10; a &= b; System.out.println("Ket qua phep (&=): " + a); a = 10; a ^= b; System.out.println("Ket qua phep (^=): " + a); a = 10; a |= b; System.out.println("Ket qua phep (|=): " + a); } }
Output:
Ket qua phep (=): 15
Ket qua phep (+=): 15
Ket qua phep (-=): 5
Ket qua phep (*=): 50
Ket qua phep (/=): 2
Ket qua phep (%=): 0
Ket qua phep (<<=): 40
Ket qua phep (>>=): 2
Ket qua phep (>>>=): 2
Ket qua phep (&=): 0
Ket qua phep (^=): 15
Ket qua phep (|=): 15Bài tập thực hành
Để làm được loạt bài này, mình xin gợi ý đoạn mã đọc 2 số a,b từ bàn phím:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); } }
Các bạn thêm code vào sau đoạn mã trên để hoàn thành các bài tập này nha:
1. Viết chương trình nhập vào 2 số nguyên a và b từ bàn phím, hãy in ra màn hình console:
- Tổng của 2 số a, b.
- Hiệu của 2 số a, b.
- Tích 2 số a, b
- a chia lấy dư cho b
- a chia lấy nguyên cho b
2. Viết chương trình nhập vào 2 số nguyên từ bàn phím, kiểm tra và xuất ra màn hình kết qủa của các phép so sánh:
- a bằng b
- a khác b
- a lớn hơn b
- a bé hơn b
- a lớn hơn hoặc bằng b
- a bé hơn hoặc bằng b
3. Viết chương trình nhập số nguyên a, b từ bàn phím. Kiểm tra và xuất ra màn hình kết quả của các phép so sánh.
- a > 5 và b < 0
- a <= b và b < 10
- a < 10 hoặc b > 5
Bài tham khảo
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); /* B1: Viết chương trình nhập vào 2 số nguyên a và b từ bàn phím, hãy in ra màn hình console: 1. Tổng của 2 số a, b. 2. Hiệu của 2 số a, b. 3. Tích 2 số a, b 4. a chia lấy dư cho b 5. a chia lấy nguyên cho b */ System.out.println("a + b: " + (a + b)); System.out.println("a - b: " + (a - b)); System.out.println("a * b: " + (a * b)); System.out.println("a % b: " + (a % b)); System.out.println("a / b: " + (a / b)); /* 2. Viết chương trình nhập vào 2 số nguyên từ bàn phím, kiểm tra và xuất ra màn hình kết qủa của các phép so sánh: 1. a bằng b 2. a khác b 3. a lớn hơn b 4. a bé hơn b 5. a lớn hơn hoặc bằng b 6. a bé hơn hoặc bằng b */ System.out.println("a == b: " + (a == b)); System.out.println("a != b: " + (a != b)); System.out.println("a > b: " + (a > b)); System.out.println("a < b: " + (a < b)); System.out.println("a >= b: " + (a >= b)); System.out.println("a <= b: " + (a <= b)); /* 3. Viết chương trình nhập số nguyên a, b từ bàn phím. Kiểm tra và xuất ra màn hình kết quả của các phép so sánh. 1. a > 5 và b < 0 2. a <= b và b < 10 3. a < 10 hoặc b > 5 */ System.out.println("a > 5 va b < 0: " + ((a > 5) && (b < 0))); System.out.println("a <= b va b < 10: " + ((a <= b) && (b < 10))); System.out.println("a > 5 hoac b < 0: " + ((a > 5) || (b < 0))); } }