Seperti yang sudah kita ketahui bahwa itu mungkin untuk membuat kode ini mengevaluasi untuk benar berkat jawaban yang besar dari Erwin Bolwidt dan phflack , saya ingin menunjukkan bahwa Anda perlu menjaga tingkat tinggi perhatian ketika berhadapan dengan kondisi yang terlihat seperti yang disajikan dalam pertanyaan, karena kadang-kadang apa yang Anda lihat mungkin tidak persis seperti yang Anda pikirkan.
Ini adalah usaha saya untuk menunjukkan bahwa kode ini dicetak Success! ke konsol. Saya tahu saya sedikit curang , tetapi saya masih berpikir ini adalah tempat yang bagus untuk menyajikannya di sini.
Tidak masalah apa tujuan penulisan kode seperti ini - lebih baik untuk mengetahui bagaimana menghadapi situasi berikut dan bagaimana memeriksa apakah Anda tidak salah dengan apa yang Anda pikir Anda lihat.
Saya menggunakan Cyrillic 'a' yang merupakan karakter berbeda dari bahasa latin 'a'. Anda dapat memeriksa karakter yang digunakan dalam pernyataan if sini .
Ini berfungsi karena nama-nama variabel diambil dari huruf yang berbeda. Mereka adalah pengidentifikasi yang berbeda, menciptakan dua variabel yang berbeda dengan nilai yang berbeda di masing-masing.
Perhatikan bahwa jika Anda ingin kode ini berfungsi dengan baik, pengkodean karakter perlu diubah menjadi satu yang mendukung kedua karakter, misalnya semua pengkodean Unicode (UTF-8, UTF-16 (dalam BE atau LE), UTF-32, bahkan UTF-7 ), atau Windows-1251, ISO 8859-5, KOI8-R (terima kasih - Thomas Weller dan Paŭlo Ebermann - untuk menunjukkannya):
public class A {
public static void main(String[] args) {
int а = 0;
int a = 1;
if(а == 0 && a == 1) {
System.out.println("Success!");
}
}
}
(Saya harap Anda tidak akan pernah harus berurusan dengan masalah semacam itu kapan saja di masa depan.)
&&adalahandoperator logis , yang berartiaharus memiliki nilai 1, 2 dan 3 pada saat yang sama yang secara logika tidak mungkin. Jawabannya adalah TIDAK, tidak mungkin. Apakah Anda ingin menulisifpernyataan yang memeriksa apakahamemiliki salah satu dari nilai 1, 2 atau 3?