-6
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。

我不知道这里有什么问题。请帮忙

4

4 回答 4

6

我不知道这里有什么问题。

逻辑。您希望(12 && 8 && 4)评估什么?(提示:是true

你认为这oposition != (12 && 8 && 4)意味着opposition与那些价值观不同吗?

于 2012-08-28T13:07:28.323 回答
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;
    }
}
于 2012-08-28T13:08:41.240 回答
1

虽然我不知道您的错误消息,但问题可能是您正在将xposition(看起来像一个数字)与operator&&括号内的结果进行比较。

稍后您还尝试与看起来没有oposition用的结果进行比较(12 && 8 && 4),即使语言允许它也是如此。

注意括号。

可能你的意思是这样的:

if (xposition == opposition-1
    && opposition != 12
    && opposition != 8
    && opposition != 4)
{
    // ...  
}

当有很多条件时,缩进会有所帮助。

于 2012-08-28T13:10:43.350 回答
0

这里的问题是您将布尔语句与(潜在的)int 值进行比较。我认为你需要的是:

if((xposition == oposition-1) &&
        (oposition != 12 && oposition != 8 && oposition != 4)))

声明 12 && 8 && 4 没有意义。您必须将每个单独的数字与您的变量进行比较。

于 2012-08-28T13:11:12.080 回答