Như chúng ta đã biết rằng có thể đánh giá mã này thành đúng nhờ các câu trả lời tuyệt vời của Erwin Bolwidt và phflack , tôi muốn chứng minh rằng bạn cần giữ sự chú ý cao khi xử lý một điều kiện giống như điều kiện được trình bày trong câu hỏi, vì đôi khi những gì bạn nhìn thấy có thể không chính xác như những gì bạn nghĩ.
Đây là nỗ lực của tôi để chỉ ra rằng mã này in Success!ra bàn điều khiển. Tôi biết tôi đã lừa dối một chút , nhưng tôi vẫn nghĩ rằng đây là một nơi tốt để trình bày nó ngay tại đây.
Bất kể mục đích của việc viết mã như thế này là gì - tốt hơn để biết cách xử lý tình huống sau đây và cách kiểm tra nếu bạn không sai với những gì bạn nghĩ bạn thấy.
Tôi đã sử dụng Cyrillic 'a', một ký tự riêng biệt với tiếng Latin 'a'. Bạn có thể kiểm tra các ký tự được sử dụng trong câu lệnh if ở đây .
Điều này hoạt động vì tên của các biến được lấy từ các bảng chữ cái khác nhau. Chúng là các định danh riêng biệt, tạo ra hai biến riêng biệt với mỗi giá trị khác nhau.
Lưu ý rằng nếu bạn muốn mã này hoạt động chính xác, mã hóa ký tự cần được thay đổi thành một ký tự hỗ trợ cả hai ký tự, ví dụ: tất cả các mã hóa Unicode (UTF-8, UTF-16 (trong BE hoặc LE), UTF-32, thậm chí UTF-7 ), hoặc Windows-1251, ISO 8859-5, KOI8-R (cảm ơn bạn - Thomas Weller và Paŭlo Ebermann - vì đã chỉ ra):
public class A {
public static void main(String[] args) {
int а = 0;
int a = 1;
if(а == 0 && a == 1) {
System.out.println("Success!");
}
}
}
(Tôi hy vọng bạn sẽ không bao giờ phải đối phó với vấn đề đó bất cứ lúc nào trong tương lai.)
&&làandtoán tử logic , có nghĩa làaphải có giá trị 1, 2 và 3 cùng một lúc, điều này là không thể. Câu trả lời là KHÔNG, không thể. Bạn có muốn viết mộtifcâu lệnh kiểm tra xemacó một trong các giá trị 1, 2 HOẶC 3 không?