Compound Boolean Expressions
แนะนำใหม่| English | ความหมาย |
|---|---|
| AND/ænd/ | AND |
| OR/ɔː/ | OR |
| NOT/nɒt/ | NOT |
| short-circuit evaluation/ʃɔːt ˈsɜːkɪt ɪˌvæljuːˈeɪʃn/ | การประเมินผลแบบลัด |
AND และ OR
- รวมเงื่อนไขด้วย
&&(ตรรกะ AND) และ||(ตรรกะ OR) a && bเป็นtrueก็ต่อเมื่อ ทั้งสองอย่าง เป็นtruea || bเป็นtrueเมื่อมี อย่างน้อยหนึ่ง อย่างเป็นtrue- "ตัวเลขอยู่ระหว่าง 1 และ 10 หรือไม่?" →
x >= 1 && x <= 10
NOT กลับค่า
!(โลจิก NOT) จะสลับค่า Boolean:!trueจะกลายเป็นfalse,!falseจะกลายเป็นtrue!(x > 5)จะเท่ากับtrueก็ต่อเมื่อxไม่ใช่ ค่ามากกว่า5- NOT ใช้กับนิพจน์ที่อยู่ถัดไปทันที — ควรใช้วงเล็บเพื่อความชัดเจน
- การปฏิเสธสองชั้นจะหักล้างกัน:
!!aเท่ากับa
การประเมินแบบสั้นวงจร (Short-circuit evaluation)
&&และ||จะหยุดประมวลผลทันทีที่ทราบคำตอบ — นี่คือ การประเมินผลแบบ Short-circuit- สำหรับ
a && b: ถ้าaเป็นfalse, ผลลัพธ์จะเป็นfalseและbจะ ไม่ถูกประเมินผลเลย - สำหรับ
a || b: ถ้าaเป็นtrue, ผลลัพธ์จะเป็นtrueและbจะถูกละเว้น - สิ่งนี้ช่วยให้คุณสามารถป้องกันข้อผิดพลาด:
x != 0 && 10 / x > 2ช่วยหลีกเลี่ยงการหารด้วยศูนย์
ตารางความจริงและวงเล็บ
- ตารางความจริง แสดงรายการทุกชุดของอินพุตและผลลัพธ์ของนิพจน์
- เมื่อมีตัวแปรสองตัว จะมี $4$ แถว; สร้างตารางขึ้นมาตรวจสอบตรรกะที่ซับซ้อน
- ใช้ วงเล็บ เพื่อแสดงความสำคัญอย่างชัดเจน:
(a && b) || c - หากไม่มีวงเล็บ,
&&จะมีความสำคัญสูงกว่า||— ซึ่งเป็นสาเหตุของความสับสนที่พบบ่อย
การตัดวงจรไม่ใช่แค่การเพิ่มประสิทธิภาพ — มันยังช่วยป้องกันข้อผิดพลาดได้ด้วย ใน x != 0 && 10 / x > 2, หาก x เป็น 0 ด้านซ้ายจะเป็น false, ดังนั้น Java จึง ไม่ ประเมินผล 10 / x เลย และหลีกเลี่ยงการหารด้วยศูนย์ การสลับลำดับจะทำให้เกิดความล้มเหลว นอกจากนี้, && มีความสำคัญมากกว่า ||, ดังนั้นควรใส่วงเล็บในนิพจน์ที่ผสมผสานเพื่อบอกความหมายได้อย่างแม่นยำ
x อยู่ภายนอกช่วง 1–10?
x < 1 || x > 10→trueเมื่อxมีค่าน้อยเกินไป หรือ มากเกินไปx = 15→false || true→true(ภายนอก)x = 5→false || false→false(ภายใน)
รวมเงื่อนไขด้วย && (เป็นจริงทั้งคู่), || (เป็นจริงอย่างน้อยหนึ่ง), และ ! (กลับด้าน) Java ใช้ การประเมินแบบลัด: &&/|| จะหยุดเมื่อได้ผลลัพธ์แล้ว (มีประโยชน์สำหรับตัวป้องกันเช่น x != 0 && 10/x > 2) สร้าง ตารางความจริง สำหรับตรรกะที่ซับซ้อนและใช้ วงเล็บ — && มีความสำคัญมากกว่า ||
AND ของสอง conditions
&& เป็น true ก็ต่อเมื่อ inputs ทั้งสองเป็น true
a && b เป็น true เมื่อ...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
&& (AND) ต้องมี operands ทั้งคู่เป็น true
ใน a && b, ถ้า a เป็น false, แล้ว b จะ...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
&& short-circuits: false left side ทำให้ผลลัพธ์เป็น false ทันที
!(true) มีค่าเป็น false
Difficulty 1/5 · 100 coins + a small bonus on first completion today
!กลับด้าน Boolean value
เมื่อ x = 5, นิพจน์ x < 1 || x > 10 มีค่าเท่าไหร่?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
false || false → false (5 อยู่ภายใน 1..10)
พฤติกรรมที่ && และ || หยุดทันทีเมื่อทราบผลลัพธ์เรียกว่า ___-circuit evaluation (คำเดียว)
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Short-circuit evaluation หยุดก่อนกำหนด