public boolean isRight() {
if(xposition == ( (oposition-1) && (oposition != (12 && 8 && 4))) {
return true;
} else {
return false;
}
}
“xposition”和“oposition”在程序运行期间分配值。
错误在(12 && 8 && 4)
我需要确保“oposition”的值不等于12和8和4。
我不知道这里有什么问题。请帮忙
答案 0 :(得分:6)
我不知道这里有什么问题。
逻辑。您期望(12 && 8 && 4)
评估什么? (提示:它是true
)
您认为oposition != (12 && 8 && 4)
表示opposition
与这些值不同吗?
答案 1 :(得分:2)
也许正确的逻辑是:
if(xposition == ( (oposition-1) && (oposition != 12 && oposition != 8 && oposition != 4) ) )
如果你有很多数字:
int[] numbers = {
12, 8, 4, 13, 2, 7
};
boolean validation = true;
for (int i : numbers) {
if (oposition == i) {
validation = false;
break;
}
}
答案 2 :(得分:1)
虽然我不知道您的错误消息,但问题可能是您将xposition
(看起来像一个数字)与括号内的operator&&
的结果进行比较。
稍后您还要尝试将oposition
与(12 && 8 && 4)
的结果进行比较,这看起来并不实用,即使语言允许也是如此。
注意括号。
可能你的意思是:
if (xposition == opposition-1
&& opposition != 12
&& opposition != 8
&& opposition != 4)
{
// ...
}
当有很多条件时,缩进会有所帮助。
答案 3 :(得分:0)
这里的问题是你将布尔语句与(潜在的)int值进行比较。我认为你需要的是:
if((xposition == oposition-1) &&
(oposition != 12 && oposition != 8 && oposition != 4)))
声明12&& 8&& 4没有意义。您 将每个单独的数字与您的变量进行比较。