【发布时间】:2013-03-05 22:48:49
【问题描述】:
我的一个函数中有类似的东西,它返回 false。
if ((X = ax && Y == ay) || (X == bx && Y == ay) || (X == cx && Y == ay) || (X == ax && Y == by) || (X == cx && Y == by) || (X == ax && Y == cy) || (X == bx && Y == cy) || (X == cx && Y == cy))
return true;
else
return false;
但是,如果我使用相同的参数调用该函数,但将代码更改为此,它会返回 true。
if (X == bx && Y == ay)
return true;
else
return false;
为什么会这样?第二个代码中的条件是第一个代码中的条件之一,所以如果其中一个为真,它应该返回真,对吗?我希望第一个条件返回 true
【问题讨论】:
-
我不确定这是否是您的问题,但您在第一个条件中缺少等号。
-
能否请您发布您的实际代码。我无法从您的“类似这些”sn-p 中看到问题。
-
在第二种情况下尝试
if ( (X == bx) && (Y == by) )。否则编译器可能会将其插入为if ( ( (X == bx) && Y ) == by) -
这些运算符的优先级是:
==>&&>||>=
标签: c++ c if-statement return conditional-statements