1. ตรรกะบูลีน

ใน Java คุณไม่สามารถเขียนนิพจน์18 < age <65ได้ นั่นเป็นไวยากรณ์ที่ไม่ถูกต้องและโปรแกรมจะไม่คอมไพล์

แต่คุณสามารถเขียนได้ดังนี้:

(18 < age) AND (age < 65)

แน่นอน แทนที่จะเป็น word ANDจะมีตัวดำเนินการเชิงตรรกะ เราจะพูดถึงรายละเอียดเพิ่มเติมในตอนนี้

มีตัวดำเนินการเชิงตรรกะสามตัวใน Java: AND(&&), OR(||) และNOT(!)

ข่าวดีก็คือคุณสามารถใช้วงเล็บเพื่อสร้างนิพจน์ตรรกะของความซับซ้อนใดๆก็ได้

ข่าวร้ายคือนักพัฒนา Java ตัดสินใจใช้สัญกรณ์จากภาษาCแทนคำandว่าorและnot

ดูที่หน้าจอ:

ตัวดำเนินการเชิงตรรกะ ความคาดหวัง ความเป็นจริง
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

ต่อไปนี้คือตัวอย่างบางส่วนของการใช้ตัวดำเนินการเชิงตรรกะใน Java:

การแสดงออก การตีความ คำอธิบาย
(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))


2. ตัวอย่างการใช้ตัวดำเนินการเปรียบเทียบและตัวแปรบูลีน

ทุกที่ที่คุณสามารถเขียนนิพจน์เชิงตรรกะได้ คุณสามารถเขียนตัวแปรเชิงตรรกะได้

ตัวอย่าง:

รหัส คำอธิบาย
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
หากค่าของอายุอยู่ระหว่าง18และ65จะแสดงวลี "คุณทำงานได้"
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
เราสร้างisYoungตัวแปรและย้ายส่วนแรกของนิพจน์เข้าไป เราก็แทนที่age >= 18ด้วยage < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
เราสร้างตัวแปร isOld และย้ายส่วนที่สองของนิพจน์เข้าไป นอกจากนี้ เราแทนที่age <= 65ด้วยage > 65.

ตัวอย่างทั้งสามนี้เทียบเท่ากัน เฉพาะในตัวอย่างที่สองเท่านั้นที่เราย้ายส่วนหนึ่งของนิพจน์จากifคำสั่งไปยังตัวแปรบูลีนแยกต่างหาก ( isYoung) ในตัวอย่างที่สาม เราย้ายส่วนที่สองของนิพจน์ไปยังตัวแปรที่สอง ( isOld)



3. เลขคณิตเชิงตรรกะ

มาดูการดำเนินการเชิงตรรกะโดยสังเขป

ตัวANDดำเนินการคือ&&เรียกอีกอย่างว่าตัวเชื่อม

การแสดงออก ผลลัพธ์
true && true
true
true && false
false
false && true
false
false && false
false

กล่าวอีกนัยหนึ่ง ผลลัพธ์ของนิพจน์จะเกิดขึ้นtrueต่อเมื่อทั้งสองค่าที่ประกอบกันเป็นนิพจน์trueนั้น มิฉะนั้นจะเป็นfalseเสมอ

ตัวORดำเนินการคือ||เรียกอีกอย่างว่าdisjunction

การแสดงออก ผลลัพธ์
true || true
true
true || false
true
false || true
true
false || false
false

กล่าวอีกนัยหนึ่ง ผลลัพธ์ของนิพจน์จะเป็นเสมอtrueหากมีพจน์อย่างน้อยหนึ่งพจน์ในนิพจน์trueคือ หากเป็นทั้งคู่falseผลลัพธ์falseคือ

ตัวNOTดำเนินการคือ!หรือที่เรียกว่า โลจิ คัลผกผัน

การแสดงออก ผลลัพธ์
!true
false
!false
true

ตัวดำเนินการเปลี่ยนtrueไปfalseและในทางกลับกัน

นิพจน์ที่เป็นประโยชน์:

การแสดงออก ผลลัพธ์
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b