这是我的问题:x是11,y是6,z是1。
w的价值是什么?
w = x == y || x != y && z > x;
我不明白如何决定是否应该评估||或者&&第一
答案 0 :(得分:3)
&&
的优先级高于||
。还需要知道什么?
x == y || x != y && z > x;
x != y
评估为true
,z>x
评估为false
,因此x != y && z > x
评估为false
。所以我们有:
x == y || false;
现在,x==y
为false
,我们得到:
false || false;
然而,如果您感到困惑,那么评估顺序并不依赖于优先级。为了更深入地了解我所说的内容,请在这里阅读Jerry Coffin提出的问题的答案。
答案 1 :(得分:1)
对此进行评估w = (x == y) || (x != y && z > x)
维基百科拥有所有操作的完整订单http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages
答案 2 :(得分:0)
查看http://www.isthe.com/chongo/tech/comp/c/c-precedence.html的优先顺序。在这种情况下,&&
的优先级高于||
。
如果您不确定,请使用支架。放置一个支架更有用,而不是头疼。