นอกเหนือจากสิ่งที่กล่าวถึงในคำตอบอื่น ๆ ก็เป็นที่น่าสังเกตว่า&&และ||มีความสำคัญที่แตกต่างจากและ&|
แยกจากตารางลำดับความสำคัญ (โดยมีลำดับความสำคัญสูงสุดอยู่ด้านบนสุด)
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
สิ่งนี้มีความหมายกับคุณอย่างไร?
ไม่มีอะไรแน่นอนตราบใดที่คุณติดกับอย่างใดอย่างหนึ่งเท่านั้น&และ|หรือเฉพาะและ&&||
แต่เนื่องจาก|มีลำดับความสำคัญสูงกว่า&&(เมื่อเทียบกับ||ซึ่งมีลำดับความสำคัญต่ำกว่า) การผสมอย่างอิสระอาจนำไปสู่พฤติกรรมที่ไม่คาดคิด
ดังนั้นa && b | c && dเป็นเช่นเดียวกับa && (b | c) && d,
ตรงข้ามกับการซึ่งจะเป็นa && b || c && d(a && b) || (c && d)
เพื่อพิสูจน์ว่ามันไม่เหมือนกันให้พิจารณาสารสกัดจากตารางความจริง:
a | b | c | d | (b|c) | (a&&b) | (c&&d) | a && (b|c) && d | (a&&b) || (c&&d)
F | T | T | T | T | F | T | F | T
^ ^
|- not the same -|
หากคุณต้องการให้หรือมีลำดับความสำคัญสูงกว่า AND คุณสามารถใช้|และ&&ร่วมกันได้ แต่ไม่แนะนำให้ใช้
แต่คุณควรใส่ไว้ในวงเล็บเพื่อชี้แจงลำดับความสำคัญเมื่อใดก็ตามที่ใช้สัญลักษณ์ต่างกันเช่น(a && b) || c(วงเล็บเพื่อชี้แจงลำดับความสำคัญ) a && b && c(ไม่ต้องใช้วงเล็บ)