"Salam, Amigo! Saya terlalu terbawa-bawa dengan menyelesaikan masalah logik sehingga saya tidak perasan anda masuk. Ini satu untuk anda: jika buaya terbang, maka salji putih. Ada buaya terbang. Apa kesimpulannya?"
"Um... Jadi kita simpulkan bahawa salji itu putih?"
"Cemerlang! Anda lulus ujian permulaan. Anda sudah bersedia untuk menguasai topik seterusnya. Ia dipanggil 'operator logik'. Dan kami akan mulakan dengan logik Boolean. Secara naluri, anda sudah mengetahuinya. Lagipun, anda adalah robot . Kami hanya perlu mengubah suai tetapan anda agar sepadan dengan bahasa Java."
"Logik Boolean? Saya baru-baru ini diberitahu tentang jenis boolean..."
"Ya, terdapat sambungan langsung di sini. Ungkapan Boolean hanya boleh benar atau salah. Dan apabila ia berlaku, logik semacam ini adalah mengenai ungkapan yang benar atau salah, dan gabungan ungkapan tersebut. Contohnya, ungkapan 18 < 25 sentiasa benar, dan 7 < 5 sentiasa palsu. Ungkapan (i < 10) bergantung pada nilai i. Dan jika ungkapan itu menilai, sebagai contoh, kepada benar, maka kita boleh meminta atur cara melakukan sesuatu."
"Ahh, saya faham. Ungkapan Boolean membolehkan kita bukan sahaja membuat kesimpulan logik, tetapi juga untuk mencipta garpu dalam program."
"Tepat sekali. Perkara utama ialah belajar cara menulisnya. Sebagai contoh, di Jawa anda tidak boleh pergi dan menulis ungkapan itu sahaja 18 < age <65
. Ini akan menjadi tidak betul dari segi sintaksis dan program tidak akan disusun.
"Tetapi anda boleh menulisnya seperti ini:
(18 < age) AND (age < 65)
Sudah tentu, kami sebenarnya tidak menggunakan perkataan ENGLISH AND
. Sebaliknya, anda memerlukan operator boolean . Iaitu, 'DAN' diwakili secara berbeza.
"Terdapat tiga operator logik dalam Java: AND
(&&), OR
(||), NOT
(!).
Berita baiknya ialah anda boleh menggunakan kurungan untuk membina ungkapan logik bagi sebarang kerumitan.
Berita buruknya ialah pembangun Java memutuskan untuk menggunakan notasi daripada bahasa C dan bukannya perkataan and
, or
dan not
.
Lihat skrin:
Operator logik | Jangkaan | Realiti |
---|---|---|
AND (∧) |
and |
&& |
OR (∨) |
or |
|| |
NOT (¬) |
not |
! |
"Sebenarnya tidaklah teruk... Cukup padat. Saya hampir menghafalnya."
"Nah, itu hebat. Berikut ialah beberapa contoh penggunaan operator logik dalam Java:
Ungkapan | Tafsiran | Penjelasan |
---|---|---|
(0 < a) && (a < 100) |
(0 < a) and (a < 100) |
(0 < a) AND (a < 100) |
(!a) && (!b) |
(not a) and (not b) |
(NOT a) AND (NOT b) |
!(!a || !b) |
not((not a) or (not b)) |
NOT((NOT a) OR (NOT b)) |
Contoh penggunaan operator perbandingan dan pembolehubah boolean
"Ingat, Amigo, di mana sahaja anda boleh menulis ungkapan logik, anda boleh menulis pembolehubah logik."
"Macam mana tu?"
"Maksud saya anda boleh menulis ungkapan logik dengan cara yang berbeza. Contohnya:
Kod | Penjelasan |
---|---|
|
Jika nilai umur antara 18 dan 65 , maka frasa "Anda boleh bekerja" dipaparkan. |
|
Kami mencipta isYoung pembolehubah dan mengalihkan bahagian pertama ungkapan ke dalamnya. Kami hanya menggantikan age >= 18 dengan age < 18 . |
|
Kami mencipta pembolehubah isOld dan mengalihkan bahagian kedua ungkapan ke dalamnya. Selain itu, age <= 65 telah digantikan dengan age > 65 . |
"Ketiga-tiga contoh ini adalah setara. Hanya dalam contoh kedua kami mengalihkan sebahagian daripada ungkapan daripada pernyataan if
ke dalam pembolehubah boolean yang berasingan ( isYoung
). Dalam contoh ketiga, kami memindahkan bahagian kedua ungkapan itu ke dalam pembolehubah kedua ( isOld
). Dengan cara ini, nilai lalai pembolehubah boolean ialah false
."
"Saya akan ingat itu. Saya harap."
Aritmetik logik
"Sekarang mari kita secara ringkas melalui operasi logik. Mereka mematuhi peraturan yang sangat mudah dan logik (bagaimana boleh sebaliknya!).
"Pertama, mari kita lihat bagaimana OR
pengendali berfungsi. Ia juga dikenali sebagai ||
atau disjunction .
Ungkapan | Hasilnya |
---|---|
true || true |
true |
true || false |
true |
false || true |
true |
false || false |
false |
"Bolehkah anda simpulkan sekarang apakah hasil ungkapan a || b
berdasarkan jadual?"
"Saya faham!" Nilai ungkapan ialah true
jika sekurang-kurangnya satu istilah dalam ungkapan itu ialah true
. Jika kedua-duanya false
, maka hasilnya adalah false
.
"Itu betul. Memandangkan anda sangat bijak, lihat sekali lagi pada jadual dan bayangkan itu false
adalah 0 dan true
ialah 1. Apabila anda melihatnya seperti itu, adakah ||
tingkah laku pengendali mengingatkan anda tentang apa-apa daripada aritmetik biasa?"
"Um... Ya, ia agak seperti penambahan... Tetapi apabila anda melakukan penambahan, 1 + 1 tidak sama dengan 1."
"Ada rasa di mana ia adalah sama jika kita hanya bekerja dengan 0 dan 1. Tetapi jangan risau dengan itu sekarang. Yang penting ialah anda perasan persamaan antara operasi ||
dan penambahan. Ini bermakna anda menang' t terkejut dengan fakta bahawa operasi ini sering dipanggil 'tambahan logik'.
"Faham."
"Sekarang pengendali AND
, aka &&
, aka konjungsi , muncul ke atas pentas.
Ungkapan | Hasilnya |
---|---|
true && true |
true |
true && false |
false |
false && true |
false |
false && false |
false |
"Seperti yang saya fahami, hasil ungkapan true
hanya jika kedua-dua nilai yang membentuk ungkapan itu ialah true
. Jika tidak, ia sentiasa false
."
"Syabas, Amigo! Anda menyerap semua ini seperti span. Adakah anda melihat persamaan lain dengan aritmetik?"
"Pendaraban!"
"Tepat sekali. Jadi di sini kita ada 'pendaraban logik'".
"Seterusnya kita melihat NOT
operator, aka !
, aka songsang logik .
Ungkapan | Hasilnya |
---|---|
!true |
false |
!false |
true |
"Nah, semuanya agak mudah di sini. Pengendali bertukar true
ke false
dan begitu juga sebaliknya."
"Tepat sekali. Berikut ialah beberapa ungkapan yang berguna untuk anda:"
Ungkapan | Hasilnya |
---|---|
m && !m |
false |
m || !m |
true |
!(a && b) |
!a || !b |
!(a || b) |
!a && !b |
GO TO FULL VERSION