Java - Các toán tử cơ bản
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 tất cả các toán tử Java thành các nhóm sau:
- Toán tử số học
- Toán tử quan hệ
- Toán tử Bitwise
- Toán tử logic
- Người điều hành nhiệm vụ
- Nhà điều hành khác
Các toán tử số học
Các toán tử số học được sử dụng trong các biểu thức toán học giống như cách chúng được sử dụng trong đại số. Bảng sau liệt kê các toán tử số học:
Giả sử biến số nguyên A giữ 10 và biến B giữ 20, sau đó -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
+ (Bổ sung) | Thêm các giá trị ở hai bên của toán tử. | A + B sẽ cho 30 |
- (Phép trừ) | Trừ toán hạng bên phải khỏi toán hạng bên trái. | A - B sẽ cho -10 |
* (Phép nhân) | Nhân các giá trị ở hai bên của toán tử. | A * B sẽ cho 200 |
/ (Bộ phận) | Chia toán hạng bên trái cho toán hạng bên phải. | B / A sẽ cho 2 |
% (Mô-đun) | Chia toán hạng bên trái cho toán hạng bên phải và trả về phần dư. | B% A sẽ cho 0 |
++ (Tăng dần) | Tăng giá trị của toán hạng lên 1. | B ++ cho 21 |
- (Giảm dần) | Giảm giá trị của toán hạng đi 1. | B-- cho 19 |
Các toán tử quan hệ
Có các toán tử quan hệ sau được hỗ trợ bởi ngôn ngữ Java.
Giả sử biến A giữ 10 và biến B giữ 20, thì -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
== (bằng) | Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành true. | (A == B) không đúng. |
! = (không bằng) | Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau thì điều kiện trở thành true. | (A! = B) là đúng. |
> (lớn hơn) | Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A> B) không đúng. |
<(nhỏ hơn) | Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A <B) là đúng. |
> = (lớn hơn hoặc bằng) | Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A> = B) là không đúng. |
<= (nhỏ hơn hoặc bằng) | Kiểm tra xem giá trị của toán hạng bên trái nhỏ hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A <= B) là đúng. |
Các toán tử Bitwise
Java định nghĩa một số toán tử bitwise, có thể được áp dụng cho các kiểu số nguyên, long, int, short, char và byte.
Toán tử bitwise hoạt động trên các bit và thực hiện hoạt động từng bit. Giả sử nếu a = 60 và b = 13; bây giờ ở định dạng nhị phân, chúng sẽ như sau:
a = 0011 1100
b = 0000 1101
-----------------
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ a = 1100 0011
Bảng sau liệt kê các toán tử bitwise:
Giả sử biến số nguyên A giữ 60 và biến B giữ 13 thì -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
& (theo chiều dọc và) | Toán tử Binary AND sao chép một bit vào kết quả nếu nó tồn tại trong cả hai toán hạng. | (A & B) sẽ cho kết quả 12 là 0000 1100 |
| (bitwise hoặc) | Toán tử OR nhị phân sao chép một bit nếu nó tồn tại trong một trong hai toán hạng. | (A | B) sẽ cho 61 là 0011 1101 |
^ (bitwise XOR) | Toán tử XOR nhị phân sao chép bit nếu nó được đặt trong một toán hạng nhưng không phải cả hai. | (A ^ B) sẽ cho 49 là 0011 0001 |
~ (lời khen nhẹ nhàng) | Toán tử bổ sung số nhị phân là một ngôi và có tác dụng 'lật' các bit. | (~ A) sẽ cho -61 là 1100 0011 ở dạng phần bù của 2 do một số nhị phân có dấu. |
<< (dịch trái) | Toán tử Shift trái nhị phân. Giá trị của toán hạng bên trái được di chuyển sang trái bằng số bit được chỉ định bởi toán hạng bên phải. | A << 2 sẽ cho 240 là 1111 0000 |
>> (ca phải) | Toán tử Shift phải nhị phân. Giá trị toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải. | A >> 2 sẽ cho 15 là 1111 |
>>> (điền số 0 sang phải) | Chuyển sang phải toán tử điền số 0. Giá trị toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải và các giá trị được dịch chuyển được điền bằng số không. | A >>> 2 sẽ cho 15 là 0000 1111 |
Các toán tử logic
Bảng sau liệt kê các toán tử logic:
Giả sử biến Boolean A giữ đúng và biến B là sai, thì -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
&& (logic và) | Được gọi là toán tử logic AND. Nếu cả hai toán hạng đều khác 0, thì điều kiện trở thành true. | (A && B) là sai |
|| (logic hoặc) | Được gọi là Toán tử logic HOẶC. Nếu bất kỳ toán hạng nào trong hai toán hạng khác 0, thì điều kiện trở thành true. | (A || B) đúng |
! (logic không) | Được gọi là Toán tử logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng thì toán tử logic NOT sẽ sai. | ! (A && B) là đúng |
Người điều hành nhiệm vụ
Sau đây là các toán tử gán được hỗ trợ bởi ngôn ngữ Java:
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
= | Toán tử gán đơn giản. Gán giá trị từ toán hạng bên phải cho toán hạng bên trái. | C = A + B sẽ gán giá trị của A + B vào C |
+ = | Thêm toán tử gán AND. Nó thêm toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái. | C + = A tương đương với C = C + A |
- = | Trừ toán tử gán AND. Nó trừ toán hạng bên phải khỏi toán hạng bên trái và gán kết quả cho toán hạng bên trái. | C - = A tương đương với C = C - A |
* = | Nhân toán tử gán AND. Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái. | C * = A tương đương với C = C * A |
/ = | Toán tử gán AND. Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái. | C / = A tương đương với C = C / A |
% = | Toán tử gán môđun AND. Nó cần có mô đun sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái. | C% = A tương đương với C = C% A |
<< = | Dịch chuyển trái toán tử gán AND. | C << = 2 giống với C = C << 2 |
>> = | Chuyển phải toán tử gán AND. | C >> = 2 giống với C = C >> 2 |
& = | Toán tử gán bitwise AND. | C & = 2 giống C = C & 2 |
^ = | OR độc quyền theo bit và toán tử gán. | C ^ = 2 giống C = C ^ 2 |
| = | bitwise bao gồm OR và toán tử gán. | C | = 2 tương tự như C = C | 2 |
Các nhà khai thác khác
Có một vài toán tử khác được hỗ trợ bởi Ngôn ngữ Java.
Điều hành có điều kiện ( ? : )
Toán tử điều kiện còn được gọi là ternary operator. Toán tử này bao gồm ba toán hạng và được sử dụng để đánh giá các biểu thức Boolean. Mục tiêu của toán tử là quyết định, giá trị nào nên được gán cho biến. Toán tử được viết là -
variable x = (expression) ? value if true : value if false
Sau đây là một ví dụ -
Example
public class Test {
public static void main(String args[]) {
int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
Điều này sẽ tạo ra kết quả sau:
Output
Value of b is : 30
Value of b is : 20
Người điều hành instanceof
Toán tử này chỉ được sử dụng cho các biến tham chiếu đối tượng. Toán tử kiểm tra xem đối tượng có thuộc một kiểu cụ thể (kiểu lớp hoặc kiểu giao diện) hay không. toán tử instanceof được viết là -
( Object reference variable ) instanceof (class/interface type)
Nếu đối tượng được tham chiếu bởi biến ở phía bên trái của toán tử vượt qua kiểm tra IS-A cho loại lớp / giao diện ở phía bên phải, thì kết quả sẽ là true. Sau đây là một ví dụ -
Example
public class Test {
public static void main(String args[]) {
String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}
Điều này sẽ tạo ra kết quả sau:
Output
true
Toán tử này sẽ vẫn trả về true, nếu đối tượng được so sánh là phép gán tương thích với kiểu ở bên phải. Sau đây là một ví dụ nữa -
Example
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
Điều này sẽ tạo ra kết quả sau:
Output
true
Mức độ ưu tiên của các toán tử Java
Mức độ ưu tiên của toán tử xác định nhóm các thuật ngữ trong một biểu thức. Điều này ảnh hưởng đến cách một biểu thức được đánh giá. Một số toán tử nhất định có quyền ưu tiên cao hơn những toán tử khác; ví dụ, toán tử nhân có mức độ ưu tiên cao hơn toán tử cộng -
Ví dụ: x = 7 + 3 * 2; ở đây x được gán 13, không phải 20 vì toán tử * có mức độ ưu tiên cao hơn +, vì vậy đầu tiên nó được nhân với 3 * 2 và sau đó cộng thành 7.
Ở đây, các toán tử có mức độ ưu tiên cao nhất xuất hiện ở đầu bảng, những toán tử có mức độ ưu tiên thấp nhất xuất hiện ở cuối bảng. Trong một biểu thức, các toán tử có mức độ ưu tiên cao hơn sẽ được đánh giá đầu tiên.
thể loại | Nhà điều hành | Sự liên kết |
---|---|---|
Postfix | biểu thức ++ biểu thức-- | Trái sang phải |
Một ngôi | ++ biểu thức –- biểu thức + biểu thức – biểu thức ~! | Phải sang trái |
Phép nhân | * /% | Trái sang phải |
Phụ gia | + - | Trái sang phải |
Shift | << >> >>> | Trái sang phải |
Quan hệ | <> <=> = instanceof | Trái sang phải |
Bình đẳng | ==! = | Trái sang phải |
Bitwise VÀ | & | Trái sang phải |
Bitwise XOR | ^ | Trái sang phải |
Bitwise HOẶC | | | Trái sang phải |
Logic AND | && | Trái sang phải |
Logic HOẶC | || | Trái sang phải |
Có điều kiện | ?: | Phải sang trái |
Chuyển nhượng | = + = - = * = / =% = ^ = | = << = >> = >>> = | Phải sang trái |
Tiếp theo là gì?
Chương tiếp theo sẽ giải thích về điều khiển vòng lặp trong lập trình Java. Chương này sẽ mô tả các loại vòng lặp khác nhau và cách các vòng lặp này có thể được sử dụng trong phát triển chương trình Java và chúng đang được sử dụng cho mục đích gì.