比较两个数组的数组元素时,布尔结果总是返回true

时间:2014-02-04 20:23:06

标签: java arrays boolean

比较两个int数组中的元素时遇到问题。我使用for循环来比较两个数组中的每个元素,如果元素匹配,则布尔结果返回true,如果不匹配,则返回false。问题在于它总是返回true,无论它们是否匹配。

此处的整个计划http://pastebin.ca/2626244

循环:

    boolean result;
    int counter = 0;
    //compares answers[] to key[]
    for (int i = 0; i < size; i++)  {
        if (answers[i] == key[i]) {
            result = true; 
            }
        if (answers[i] != key[i]) {
            result = false;
        }
        if (result = true) {
            counter++;
        }
    }
    System.out.println(counter+"/"+size+" questions are correct.");

因此,“counter”始终与总元素(“size”)的值相同。即使两个数组都包含完全不同的值,结果仍然不是0 / size。它似乎总是大小/尺寸。

我是否错误地比较了数组(参见完整程序),或者我的循环是否有问题?

2 个答案:

答案 0 :(得分:2)

使用比较运算符==来比较事物,而不是赋值运算符=。但由于result已经是boolean,因此只需使用boolean本身。

更改

if (result = true) {

if (result)

答案 1 :(得分:1)

= is use to assign the value and to compare the value use `==`

因此需要更改以下代码:

if (result == true) {
    counter++;
}

或更好的解决方案

if (result) {
    counter++;
}