Nó phải làm với Ưu tiên toán tử, đó là thứ tự các toán tử Java được đánh giá bởi trình thông dịch Java.
Xem here cho tài liệu. Một từ viết tắt hữu ích là BUDMASRELCA - B vợt, U nary, D IV- M ultiplication (trên thực tế nhân giống vì nó bao gồm modulo), Một ddittion- S ubtraction, R elational, E chất lượng, L ogical, C onditional (ternary), A ssignment. Tôi đã bỏ lỡ các toán tử Bitwise, nhưng chúng có thể được nhóm theo logic và chúng được ưu tiên hơn các toán tử logic bình thường.
0% 2! = 0 được đánh giá là 0% 2 (chất nhân) đầu tiên và sau đó nó được kết quả 0 được đánh giá với! = 0. (bình đẳng)
Bên trong, trình biên dịch xây dựng một cây biểu thức nhị phân để biểu diễn thứ tự như được hiển thị bên dưới cho trường hợp của bạn, sử dụng toán tử làm gốc và để lại dưới dạng giá trị hoặc toán tử khác (trong trường hợp đệ quy). Vì vậy, các cây con có các toán tử cần được đánh giá trước khi toán tử gốc có thể được đánh giá với giá trị của lá cây.
!=
/\
% 0
/\
0 2
Tôi thực sự không phải là lỗi mã hóa, tôi đã sao chép trực tiếp từ sách của mình, nó cũng được tham chiếu nhiều lần trong bài giảng của tôi. – Michael
Đó là ... không phải những gì '%' có nghĩa là. –