Tôi đang cố gắng đánh giá biểu thức (1 <= month <= 12)
trong điều kiện if.Đánh giá biểu thức 1 <= tháng <= 12
Tuyên bố này có vẻ hợp lệ trong javascript, nhưng không có trong Java.
Trong Java,
int month = 0;
boolean flag = (1 <= month <= 12);
Nó throws lỗi sau:
The operator <= is undefined for the argument type(s) boolean, int
Trong javascript,
var month = 0;
console.log('Expression evaluates to: ', (1 <= month <= 12));
It always returns
true
no matter what the value of month is.
Có thể ai đó xin giải thích:
- Nếu đó là biểu thức hợp lệ hay không?
- Tại sao nó luôn mang lại hiệu suất cho
true
trong javascript? - Tại sao java coi đó là biểu thức không hợp lệ?
Ngoài ra tôi biết tôi có thể làm cho nó hoạt động theo cách này (1 <= month && month <= 12)
. Vì vậy, không tìm kiếm một giải pháp mà là một lời giải thích.
Cảm ơn. Ngoài ra hãy cho tôi biết nếu câu hỏi của tôi không rõ ràng.
Đó là một biểu thức hợp lệ (trong JavaScript, không phải Java), nhưng nó không làm những gì bạn nghĩ. Java sẽ không cho phép bạn thực hiện so sánh như vậy giữa một số và một boolean, nhưng nó phân tích cú pháp biểu thức theo cùng một cách ('(1 <= tháng) <= 12'). – Pointy
Không so sánh Javascript và Java. Không được thực hiện cho cùng một mục đích. Java được gõ mạnh mẽ, javascript không và sẽ cho phép nhiều hơn * lập trình phong cách sôi nổi * – ortis