0

这是我的问题:x 是 11,y 是 6,z 是 1。

w的值是多少?

w = x == y || x != y && z > x;

我不明白如何决定是否应该评估 || 或 && 第一个。

4

3 回答 3

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 对我的问题的回答。

运算符优先级与评估顺序

于 2013-10-25T05:54:02.880 回答
1

这将被评估为这个w = (x == y) || (x != y && z > x)维基百科具有所有操作的完整顺序http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages

于 2013-10-25T05:56:50.570 回答
0

查看http://www.isthe.com/chongo/tech/comp/c/c-precedence.html了解优先顺序。在这种情况下&&,优先级高于||

如果您不确定,请使用括号。放一个括号比这样头疼要有用得多。

于 2013-10-25T05:55:53.493 回答