У меня есть что-то подобное в одной из моих функций, и оно возвращает false.Условие в выражении if-else вычисляется неправильно
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, правильно? Я ожидаю, что первое условие вернется.
Я не уверен, если это ваша проблема, но вам не хватает равенства в первом состоянии. – eliot
Не могли бы вы высказать свой фактический код. Я не вижу эту проблему из вашего «что-то вроде этого». –
try 'if ((X == bx) && (Y == by))' для второго случая. В противном случае компилятор, вероятно, будет интерпретировать его как 'if (((X == bx) && Y) == by)' –