括号是必要的还是仅用于可读性?

时间:2013-12-10 20:27:29

标签: coldfusion coldfusion-8 coldfusion-10

这两个条件陈述的评估方式有何不同?

<cfif Catalog_Id eq 123 or Catalog_Id eq 456 and CatalogType eq 1></cfif>
<cfif (Catalog_Id eq 123 or Catalog_Id eq 456) and CatalogType eq 1></cfif>

从我记得的情况来看,条件陈述将从左到右进行评估。这意味着将评估OR语句,然后评估AND条件。

在这种情况下,括号是必要的还是仅仅是为了便于阅读?是否会以相同的顺序对所有语言进行评估?

更新

出于某种原因,我无法将疲惫的大脑包裹在这个执行方式的概念中。一旦有人指出显而易见的事,我就醒了,想知道我自己怎么也找不到答案。啊。

1 个答案:

答案 0 :(得分:3)

第一个语句被评估为Catalog_Id eq 123(Catalog_Id eq 456 and CatalogType eq 1)

第二个语句被评估为(Catalog_Id eq 123 or Catalog_Id eq 456) AND CatalogType eq 1

这是两个不同的陈述。查看Adobe的Operator precedence and evaluation ordering