Rumah > Java > javaTutorial > Apakah Perbezaan Utama Antara Operator `&` dan `&&` Java?

Apakah Perbezaan Utama Antara Operator `&` dan `&&` Java?

Linda Hamilton
Lepaskan: 2024-12-01 04:35:14
asal
152 orang telah melayarinya

What's the Key Difference Between Java's `&` and `&&` Operators?

Memahami Perbezaan Antara '&' dan '&&' dalam Java

Di Jawa, operator '&' secara tradisinya dikaitkan dengan operasi bitwise pada integer. Walau bagaimanapun, baru-baru ini muncul bahawa pengendali ini juga boleh melaksanakan operasi boolean, mempersoalkannya dengan operator '&&'.

Walaupun kedua-dua '&' dan '&&' mengesahkan kebenaran operan boolean, mereka berbeza dalam logik penilaian mereka. '&&' melakukan penilaian malas, bermakna ia hanya menilai operan sebelah kanan (RHS) jika operan sebelah kiri (LHS) adalah benar. Ini memastikan bahawa jika operan LHS adalah palsu, operan RHS tidak dinilai, berpotensi mengelakkan pengiraan yang tidak perlu dan menghalang pengecualian daripada berlaku.

Sebaliknya, '&' menilai kedua-dua operan tanpa henti. Ini boleh membawa kepada pengecualian jika operan RHS tidak ditakrifkan dengan baik untuk nilai operan LHS tertentu. Pertimbangkan contoh:

if ((x != 0) & (1/x > 1)) {
    // ...
}
Salin selepas log masuk

Jika 'x' ialah 0, ungkapan ini akan membuang pengecualian apabila cuba menilai '1/x'. Untuk mengelakkan ini, gunakan '&&' sebaliknya:

if ((x != 0) && (1/x > 1)) {
    // ...
}
Salin selepas log masuk

Di sini, ia hanya akan meneruskan untuk menilai '1/x' jika 'x' bukan 0, sekali gus mengelakkan pengecualian.

Tambahan pula, '|', '|>' rakan sejawatan pengendali boolean berkelakuan serupa. '|>' berhenti menilai jika operan pertama menilai kepada benar kerana hasilnya akan sentiasa benar.

Memahami perbezaan halus antara '&' dan '&&' ini adalah penting untuk menulis kod Java yang cekap dan mantap yang mengelakkan ralat masa jalan yang disebabkan oleh penilaian pramatang.

Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Operator `&` dan `&&` Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan