首页 文章

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

提问于
浏览
1

比较两个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.");

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

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

2 回答

  • 2

    使用比较运算符 == 来比较事物,而不是赋值运算符 = . 但是因为 result 已经是 boolean ,所以只需使用 boolean 本身 .

    更改

    if (result = true) {
    

    if (result)
    
  • 1
    = is use to assign the value and to compare the value use `==`
    

    所以需要更改以下代码:

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

    或更好的解决方案是

    if (result) {
        counter++;
    }
    

相关问题