Tại sao kết quả 8 và không phải là 9?Toán tử gia tăng hoạt động như thế nào trong Java?
Theo logic của tôi:
++x
cho 4- 4 + 4 cho 8, vì vậy
x = 8
- Nhưng sau khi tuyên bố rằng
x
nên được tăng lên dox++
, vì vậy nó phải được 9.
Có gì sai với logic của tôi ?:
int x = 3;
x = x++ + ++x;
System.out.println(x); // Result: 8
Khi câu trả lời này đúng, kết quả phụ thuộc mạnh vào thực tế là các biểu thức đang được đánh giá từ trái sang phải, như Java đảm bảo. Một số ngôn ngữ khác (đáng chú ý là C và C++) thiếu sự bảo đảm này, làm cho cùng một lý do không hợp lệ trong các ngữ cảnh như vậy. (Tôi biết điều này là về Java, chỉ, nhưng muốn nhấn mạnh điều này anyway) – chi
Có đúng không ?: "Bạn nên lưu ý rằng biểu thức được đánh giá từ bên trái sang bên phải" x = x ++ + ++ x; 3 + 5 = 8 Tại sao 5? Nó phải là 4, phải không? –
@AdamAry Vâng. – Eran