使用&&时出错操作者

时间:2012-08-28 13:06:11

标签: java

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 个答案:

答案 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没有意义。您 将每个单独的数字与您的变量进行比较。