为什么我在两个Integer-Values之间进行比较不起作用?

时间:2019-10-23 16:56:45

标签: java arrays eclipse multidimensional-array integer

有时候,即使它们包含不同的值,与被比较的值不同的值也不会设置为null。 数组值的值从不改变,但数组结果的值不变。

static int[][][] Results= new int[1000][30][3];
public static int[] Values= new int[3]; //is in a different class

...

for (int i = 0; i < Results.length; i++) {

if ((Results[i][0][0]) != (Input.Values[0])
                    && (Results[i][0][1]) != (Input.Values[1])
                    && (Results[i][0][2]) != (Input.Values[2])) {

                Results[i] = null;
            }else{
                System.out.println(i+ " Results: " + Results[i][0][0] + " " +Results[i][0][1]+ " " + Results[i][0][2]+  " Values: " + Input.Values[0]  +" "+ Input.Values[1]+ " "+ Input.Values[2]);
            }
}

这是输出:

...

3结果:27 19 34值:27 17 36

4个结果:27 38 15值:27 17 36

5结果:27 38 15值:27 17 36

6个结果:27 23 30值:27 17 36

7个结果:27 23 30值:27 17 36

8个结果:27 46 7值:27 17 36

9个结果:27 39 14值:27 17 36

...

例如在3.中将输出27与27相比较,将19与17相比较,将34与36相比较。

我在这里没看到什么?我浏览了其他帖子,但问题出在例如比较包含整数和整数的数组。我很确定那不是这里的情况。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题出在您的if语句上。将您的条件更改为||,而不是&&。 27是解决所有问题的常用编号。使用&&,它们都必须不同。