2

应该首先评估哪个,x=1 还是 x=2?

在这种情况下:Y=(x*(x=1))/(x+(x=2))

在这种情况下: Y=(6+(x-(x=1))/(4+(9-(x*(x=2))))

...例如。

不久前,我对一个表情评估器做了一个非常粗略的猜测。我在括号评估中追求简单的从左到右的优先级(显然每个括号集仍然是深度优先),但是应该首先评估哪个括号集的问题让我感到困惑。最深的先设置还是坚持 l 到 r 的优先级?

4

2 回答 2

0

这是你的选择。来自这篇维基百科文章“操作顺序”:

Many programming languages use precedence levels that conform to the order 
commonly used in mathematics, though some, such as APL and Smalltalk, have
no operator precedence rules (in APL evaluation is strictly right to left,
in Smalltalk it's strictly left to right).
于 2013-06-21T12:59:31.307 回答
0

归根结底,如何实现它完全取决于您。但根据我的经验,最流行的语言是从左到右使用的。非常明显的例子是评估逻辑表达式,例如:

if (obj != null && obj.propertyA == "a")

如果从右到左,你会有一个例外

于 2013-06-21T13:07:48.490 回答