Java memiliki tipe sederhana yang merepresentasikan nilai logika yang disebut Boolean. Nilainya hanya dapat berupa salah satu dari dua nilai: benar atau salah. Semuanya seperti Program berikut mengilustrasikan penggunaan tipe Boolean:
// Tunjukkan nilai boolean. class BoolTest { public static void main(String args[]) { boolean b = false; System.out.println("b adalah " + b = true; ("b adalah " + b); // nilai boolean dapat mengontrol pernyataan if if(b) System.out.println("Ini dijalankan."); System.out.println("Ini tidak dieksekusi."); // hasil dari operator relasional adalah nilai boolean System.out.println("10 > 9 adalah " + (10 > 9) } }
Hasil dari menjalankan program ini adalah sebagai berikut:
b salah b benar Ini dijalankan
Ada 3 hal menarik yang perlu diperhatikan dalam program ini. Pertama, Anda telah melihat bahwa ketika Anda menggunakan metode println() untuk menampilkan nilai boolean, ini akan menampilkan "benar" atau "salah". Kedua, nilai variabel Boolean itu sendiri cukup untuk mengontrol pernyataan if. Tidak perlu menulis pernyataan if seperti ini:
jika(b == benar) ...
Ketiga, hasil dari operator relasional (seperti <) adalah nilai Boolean. Inilah sebabnya ekspresi 10>9 menampilkan "benar". Selain itu, tanda kurung tambahan ditambahkan pada kedua sisi ekspresi 10>9 karena tanda plus operator "+" mempunyai prioritas lebih tinggi dibandingkan operator ">".
Perbedaan operasi logika dan operasi bitwise pada tipe JAVA Boolean
Dari segi hasil, hasil kedua operasi tersebut sama, namun operasi logika akan mengalami fenomena “korsleting”, sedangkan operasi bitwise tidak, dan operasi bitwise memiliki lebih banyak fungsi “XOR” daripada operasi logika.
fenomena hubung singkat
kelas br { boolean statis f1() { kembalikan salah; } boolean statis f2() { kembalikan benar; } boolean statis f3() { kembalikan benar }} boolean f_1 = br.f1()&&br.f2()&&br.f3 ();
Hasilnya salah. Jika f1() salah, maka hasil operasi && berikutnya diketahui tanpa harus menjalankannya. JAVA akan melakukan "hubungan pendek" pada operasi berikutnya, sehingga meningkatkan kinerja.
boolean f_2 = br.f2()||br.f1()||br.f3();
Hasilnya benar. Demikian pula, f2() juga benar, dan tidak perlu melakukan operasi lebih lanjut.
Kelihatannya sangat nyaman dan efisien, namun masih memiliki kekurangan.
boolean f_3 = br.f2()||br.f3()&&br.f1();
Hasilnya menjadi benar, yang seharusnya salah. Ini adalah kesalahan yang disebabkan oleh "korsleting". Jika ingin mendapatkan jawaban yang benar, Anda perlu menambahkan tanda kurung:
f_3=( br.f2()||br.f3())&&br.f1();
Operasi bitwise menyediakan fungsionalitas XOR yang logikanya tidak:
boolean f = benar^benar;
Hasil f = salah;