有时,与比较值不同的值不会被设置为 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比较。
我在这里没有看到什么?我浏览过其他帖子,但问题是由例如引起的将包含整数的数组与整数进行比较。我很确定这里的情况并非如此..
感谢您的帮助!
最佳答案
问题出在你的 if 语句上。将条件更改为 ||
而不是 &&
。 27 是所有问题的通用数字。对于&&
,它们都必须不同。
关于java - 为什么我在两个整数值之间的比较不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58527705/