Ưu tiên toán tử Java

Mức độ ưu tiên của toán tử xác định thứ tự mà các toán tử trong một biểu thức được đánh giá.

Trước khi bắt đầu đọc bài viết này, bạn nên có kiến ​​thức cơ bản về Toán tử Java.

Bây giờ, hãy xem tuyên bố dưới đây:

 int myInt = 12 - 4 * 2;

Giá trị của myInt sẽ là gì? Nó sẽ được (12 - 4)*2, đó là 16,? Hoặc nó sẽ là 12 - (4 * 2), đó là 4,?

Khi hai toán tử chia sẻ một toán hạng chung, 4trong trường hợp này, toán tử có mức ưu tiên cao nhất được tính toán trước.

Trong Java, mức độ ưu tiên của *cao hơn mức độ ưu tiên của -. Do đó, phép nhân được thực hiện trước phép trừ và giá trị của myInt sẽ là 4.

Bảng ưu tiên nhà điều hành

Bảng dưới đây liệt kê mức độ ưu tiên của các toán tử trong Java; nó xuất hiện trong bảng càng cao thì mức độ ưu tiên của nó càng cao.

Ưu tiên toán tử Java
Người điều hành Quyền ưu tiên
tăng và giảm postfix ++ --
tiền tố tăng và giảm, và một ++ -- + - ~ !
nhân * / %
phụ gia + -
sự thay đổi << >> >>>
quan hệ < > <= >= instanceof
bình đẳng == !=
bitwise VÀ &
bitwise độc ​​quyền HOẶC ^
bao gồm bitwise HOẶC |
logic AND &&
logic HOẶC ||
bậc ba ? :
sự phân công = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Ví dụ: Quyền ưu tiên của nhà điều hành

 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )

Đầu ra :

 2

Toán tử ưu tiên tiền tố ++cao hơn -toán tử trừ. Vì thế,

 kết quả = a - ++ c - ++ b;

tương đương với

 kết quả = a - (++ c) - (++ b);

Khi xử lý nhiều toán tử và toán hạng trong một biểu thức, bạn có thể sử dụng dấu ngoặc đơn như trong ví dụ trên cho rõ ràng. Biểu thức bên trong dấu ngoặc đơn được đánh giá đầu tiên.

Tính liên kết của các toán tử trong Java

Nếu một biểu thức có hai toán tử có mức độ ưu tiên tương tự, biểu thức được đánh giá theo tính kết hợp của nó (từ trái sang phải hoặc từ phải sang trái). Hãy lấy một ví dụ.

 a = b = c;

Ở đây, giá trị của c được gán cho biến b. Khi đó giá trị của b được gán cho biến a. Tại sao? Đó là vì tính liên kết của toán tử = từ phải sang trái.

Bảng dưới đây cho thấy tính liên kết của các toán tử Java cùng với tính liên kết của chúng.

Tính ưu tiên và tính liên kết của toán tử Java
Người điều hành Quyền ưu tiên Sự liên kết
tăng và giảm postfix ++ -- trái sang phải
tiền tố tăng và giảm, và một ++ -- + - ~ ! phải sang trái
nhân * / % trái sang phải
phụ gia + - trái sang phải
sự thay đổi << >> >>> 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 độc ​​quyền HOẶC ^ trái sang phải
bao gồm bitwise HOẶC | trái sang phải
logic AND && trái sang phải
logic HOẶC || trái sang phải
bậc ba ? : phải sang trái
sự phân công = += -= *= /= %=
&= ^= |= <<= >>= >>>=
phải sang trái

Bạn không cần phải ghi nhớ mọi thứ ở đây. Hầu hết thời gian, mức độ ưu tiên và tính liên kết của các toán tử tự nó có ý nghĩa. Bạn luôn có thể quay lại bài viết này để tham khảo khi nghi ngờ. Ngoài ra, bạn có thể sử dụng dấu ngoặc đơn nếu bạn cho rằng nó làm cho mã của bạn dễ hiểu hơn.

thú vị bài viết...