有时候,即使它们包含不同的值,与被比较的值不同的值也不会设置为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相比较。
我在这里没看到什么?我浏览了其他帖子,但问题出在例如比较包含整数和整数的数组。我很确定那不是这里的情况。
感谢您的帮助!
答案 0 :(得分:0)
问题出在您的if语句上。将您的条件更改为||
,而不是&&
。 27是解决所有问题的常用编号。使用&&
,它们都必须不同。