"Salam, Amigo! Saya begitu asyik memecahkan soal logika sehingga saya tidak menyadari Anda masuk. Ini satu untuk Anda: jika buaya terbang, maka salju itu putih. Ada buaya terbang. Apa kesimpulannya?"

"Um... Jadi kita menyimpulkan bahwa salju itu berwarna putih?"

"Luar biasa! Anda lulus tes inisiasi. Anda siap untuk menguasai topik berikutnya. Ini disebut 'operator logika'. Dan kita akan mulai dengan logika Boolean. Secara naluriah, Anda sudah mengetahuinya. Bagaimanapun, Anda adalah robot . Kami hanya perlu men-tweak pengaturan Anda agar sesuai dengan bahasa Java."

"Logika Boolean? Baru-baru ini saya diberi tahu tentang tipe boolean..."

"Ya, ada hubungan langsung di sini. Ekspresi Boolean hanya bisa benar atau salah. Dan seperti yang terjadi, logika semacam ini adalah tentang ekspresi yang benar atau salah, dan kombinasi dari ekspresi semacam itu. Misalnya, ekspresi 18 < 25 selalu benar, dan 7 < 5 selalu salah. Ekspresi (i < 10) bergantung pada nilai i. Dan jika ekspresi bernilai, misalnya, benar, maka kita dapat meminta program untuk melakukan sesuatu."

"Ahh, saya mengerti. Ekspresi Boolean memungkinkan kita tidak hanya membuat kesimpulan logis, tetapi juga membuat percabangan dalam program."

"Tepat sekali. Yang utama adalah mempelajari cara menulisnya. Misalnya, di Java Anda tidak bisa langsung menulis ekspresi 18 < age <65. Ini akan salah secara sintaksis dan program tidak dapat dikompilasi.

"Tapi Anda bisa menulisnya seperti ini:

(18 < age) AND (age < 65)

Tentu saja, kami sebenarnya tidak menggunakan kata BAHASA INGGRIS AND. Sebagai gantinya, Anda memerlukan operator boolean . Artinya, 'DAN' direpresentasikan secara berbeda.

"Ada tiga operator logis di Jawa: AND(&&), OR(||), NOT(!).

Kabar baiknya adalah Anda dapat menggunakan tanda kurung untuk membuat ekspresi logis dari kerumitan apa pun.

Kabar buruknya adalah pengembang Java memutuskan untuk menggunakan notasi dari bahasa C sebagai pengganti kata and, ordan not.

Lihat layar:

Operator logis Ekspektasi Realitas
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

"Sebenarnya tidak seburuk itu... Cukup kompak. Aku hampir menghafalnya."

"Wah, bagus sekali. Berikut adalah beberapa contoh penggunaan operator logika di Java:

Ekspresi Penafsiran 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 pembanding dan variabel boolean

"Ingat, Amigo, di mana pun Anda bisa menulis ekspresi logika, Anda bisa menulis variabel logika."

"Bagaimana dengan itu?"

"Maksud saya, Anda dapat menulis ekspresi logis dengan cara yang berbeda. Misalnya:

Kode Penjelasan
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
Jika nilai usia antara 18dan 65, maka kalimat "Kamu bisa bekerja" ditampilkan.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
Kami membuat sebuah isYoungvariabel dan memindahkan bagian pertama dari ekspresi ke dalamnya. Kami cukup mengganti age >= 18dengan age < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
Kami membuat variabel isOld dan memindahkan bagian kedua dari ekspresi ke dalamnya. Selain itu, age <= 65digantikan oleh age > 65.

"Ketiga contoh ini ekuivalen. Hanya pada contoh kedua kami memindahkan bagian ekspresi dari pernyataan ifke variabel boolean terpisah ( isYoung). Pada contoh ketiga, kami memindahkan bagian kedua ekspresi ke variabel kedua ( isOld). Omong-omong, nilai default dari variabel boolean adalah false."

"Aku akan mengingatnya. Kuharap."

Aritmatika logis

"Sekarang mari kita secara singkat melalui operasi logis. Mereka mematuhi aturan yang sangat sederhana dan logis (bagaimana bisa sebaliknya!).

“Pertama, mari kita lihat bagaimana ORoperator bekerja. Ini juga dikenal sebagai ||atau disjungsi .

Ekspresi Hasil
true || true true
true || false true
false || true true
false || false false

"Bisakah Anda menyimpulkan sekarang apa hasil dari ekspresi a || bberdasarkan tabel?"

"Jadi begitu!" Nilai suatu ekspresi adalah truejika setidaknya satu suku dalam ekspresi tersebut adalah true. Jika keduanya false, maka hasilnya adalah false.

"Itu benar. Karena kamu sangat pintar, lihat lagi tabelnya dan bayangkan itu false0 dan true1. Ketika kamu melihatnya seperti itu, apakah ||perilaku operator mengingatkanmu pada sesuatu dari aritmatika biasa?"

"Um... Yah, ini seperti penjumlahan... Tapi ketika kamu melakukan penjumlahan, 1 + 1 tidak sama dengan 1."

"Ada rasa sama jika kita hanya bekerja dengan 0 dan 1. Tapi jangan pedulikan itu sekarang. Yang penting adalah Anda memperhatikan kesamaan antara operasi ||dan penjumlahan. Ini berarti Anda menang ' Jangan kaget dengan kenyataan bahwa operasi ini sering disebut 'penjumlahan logis'.

"Mengerti."

"Sekarang AND, alias &&, alias operator konjungsi , naik ke atas panggung.

Ekspresi Hasil
true && true true
true && false false
false && true false
false && false false

"Seperti yang saya pahami, hasil ekspresi hanya truejika kedua nilai yang membentuk ekspresi adalah true. Jika tidak, selalu false."

"Bagus, Amigo! Kamu menyerap semua ini seperti spons. Apakah kamu melihat kesamaan lain dengan aritmatika?"

"Perkalian!"

"Tepat. Jadi di sini kita memiliki 'perkalian logis'".

"Selanjutnya kita lihat NOToperator alias !invers logikanya .

Ekspresi Hasil
!true false
!false true

"Yah, semuanya cukup sederhana di sini. Operatornya berganti trueke falsedan sebaliknya."

"Tepat sekali. Ini beberapa ungkapan yang berguna untukmu:"

Ekspresi Hasil
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b