布尔逻辑(运算顺序)A 和 B 或 C
Posted
技术标签:
【中文标题】布尔逻辑(运算顺序)A 和 B 或 C【英文标题】:Boolean Logic (Order of operations) A and B or C 【发布时间】:2013-06-13 16:27:27 【问题描述】:我正在创建一个用户可以输入术语的“基本搜索”栏。 我不确定布尔逻辑的操作顺序。
如果有人键入术语(不带引号):
A 和 B 或 C
正确的处理方法是什么?
(A 和 B)或(C)
或
(A)和(B或C)
【问题讨论】:
我认为这属于 ux.stackexchange.com,但在标准布尔逻辑中,FWIW 的优先级规则使 NOT 最高,然后是 AND,然后是 OR。 @dodgethesteamroller 为什么?没有提到Unix等。在问题中..? @RBarryYoung ux.stackexchange.com 中的ux
是为了“用户体验”,而不是 Unix。我的观点是,这里存在关于如何呈现布尔搜索选项的隐含问题——应用程序是否期望最终用户理解布尔逻辑(例如在编程上下文中),或者他们可能几乎不会懂计算机(例如在图书馆卡目录搜索中),还是介于两者之间?如果 OP“不确定操作顺序”,那么他对他的用户不是同样不确定的信心有多大?
@dodgethesteamroller 呵呵。我的错,对不起。
律师是目标用户。大多数人不知道,有些人接受过搜索技术培训......这就是为什么我想确定顺序。
【参考方案1】:
***的救援,这应该会有所帮助:
http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages
从表面上看,在大多数语言中,AND
似乎优先于 OR
。
【讨论】:
【参考方案2】:根据羽蛇神回复,OP问题的正确答案是:
(A 和 B)或 C
这相当于“A and B or C”
虽然 Quetzalcoatl 的链接 (http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages) 谈到了编程语言(正如本网站所做的那样),但在***中为一般逻辑指定了更常见的优先级:
https://en.wikipedia.org/wiki/Logical_connective#Order_of_precedence
【讨论】:
【参考方案3】:(A)和(B或C)
and 表示交集或“喜欢”联合
像数学一样
“AND”类似于乘数,“OR”类似于求和
在“真值表”中
或 一个 |乙|结果 真实 |真实 |真的 真实 |假 |真的 真实 |假 |真的 假 |假 |假的
与 一个 |乙|结果 真实 |真实 |真的 真实 |假 |假 真实 |假 |假 假 |假 |假的
【讨论】:
OP不是询问AND和OR的含义,而是询问它们的相对优先级。以上是关于布尔逻辑(运算顺序)A 和 B 或 C的主要内容,如果未能解决你的问题,请参考以下文章