เนื่องจากเรารู้แล้วว่าเป็นไปได้ที่จะทำให้โค้ดนี้ประเมินเป็นจริงขอบคุณคำตอบที่ยอดเยี่ยมของErwin Bolwidtและphflackฉันต้องการแสดงให้เห็นว่าคุณต้องให้ความสนใจในระดับสูงเมื่อจัดการกับเงื่อนไขที่ดูเหมือนว่านำเสนอ ในคำถามบางครั้งสิ่งที่คุณเห็นอาจไม่ตรงกับที่คุณคิด
นี่คือความพยายามของฉันเพื่อแสดงว่ารหัสนี้พิมพ์Success!ไปที่คอนโซล ฉันรู้ว่าฉันโกงนิดหน่อยแต่ฉันก็ยังคิดว่านี่เป็นสถานที่ที่ดีในการนำเสนอที่นี่
ไม่ว่าจุดประสงค์ในการเขียนโค้ดเช่นนี้จะเป็นอย่างไร - ดีกว่าที่จะทราบวิธีจัดการกับสถานการณ์ต่อไปนี้และวิธีการตรวจสอบว่าคุณไม่ผิดกับสิ่งที่คุณคิดว่าคุณเห็น
ฉันใช้ Cyrillic 'a' ซึ่งเป็นตัวละครที่แตกต่างจากละติน 'a' คุณสามารถตรวจสอบตัวอักษรที่ใช้ในงบถ้าที่นี่
สิ่งนี้ใช้งานได้เพราะชื่อของตัวแปรนั้นมาจากตัวอักษรที่แตกต่างกัน พวกมันคือตัวบ่งชี้ที่แตกต่างสร้างตัวแปรที่แตกต่างกันสองตัวที่มีค่าต่างกันในแต่ละตัว
โปรดทราบว่าหากคุณต้องการให้รหัสนี้ทำงานอย่างถูกต้องการเข้ารหัสอักขระจะต้องเปลี่ยนเป็นหนึ่งที่รองรับอักขระทั้งสองตัวเช่นการเข้ารหัส Unicode ทั้งหมด (UTF-8, UTF-16 (ใน BE หรือ LE), UTF-32, แม้แต่ UTF-7 ) หรือ Windows-1251, ISO 8859-5, KOI8-R (ขอบคุณ - Thomas WellerและPaŭlo Ebermann - สำหรับการชี้ให้เห็น):
public class A {
public static void main(String[] args) {
int а = 0;
int a = 1;
if(а == 0 && a == 1) {
System.out.println("Success!");
}
}
}
(ฉันหวังว่าคุณจะไม่ต้องจัดการกับปัญหาแบบนั้นตลอดเวลาในอนาคต)
&&เป็นandตัวดำเนินการเชิงตรรกะซึ่งหมายความว่าaควรมีค่า 1, 2 และ 3 ในเวลาเดียวกันซึ่งเป็นไปไม่ได้ในเชิงตรรกะ คำตอบคือไม่เป็นไปไม่ได้ คุณต้องการเขียนifคำสั่งที่ตรวจสอบว่าaมีหนึ่งในค่า 1, 2 หรือ 3 หรือไม่?