【发布时间】:2014-07-12 03:42:45
【问题描述】:
基本上我想要做的是检查 int 数组中的每个元素,如果所有元素都具有相同的值。
我创建如下的 int 数组来传递给比较每个数组元素的方法,即使元素不是完全相同的值,它也会返回 boolean true。
Int[] denominator = {3,3,4,3};
boolean compare;
compare = bruteforce(denominator);
public static boolean bruteforce(int[] input) {
int compare =0;
int count =0;
for (int i = 0; i < input.length; i++) {
compare = input[i];
while(count<input.length){
if(input[i+1]==compare){
return true;
}
i++;
count++;
}//end while
}//end for
return false;
}//end method
我想上面的方法会循环遍历数组的每个元素并保持比较。
当我打印输出时,它显示它只循环一次,返回布尔值为真。
我真的不知道我的代码有什么问题。
也许我只是忽略了一些愚蠢的错误。
【问题讨论】:
-
它是因为如果第一个元素等于第二个元素,您会立即返回 true。您需要检查它们是否不相等,如果是则返回false。然后,如果它们永远不相等,则在最后返回 true。此外,你会得到一个索引越界异常。
-
@Carlos Bribiescas 谢谢,最后我得到了上面数组的返回 false 的结果。但是,是的,如果所有元素都是相同的值,它会给出索引超出范围。我该如何解决这个问题?
-
if(input[i+1]==compare){i == input.length - 1是 AFA 的罪魁祸首IndexOutOfBoundsException。