我在比较两个 int 数组中的元素时遇到问题。我正在使用for循环来比较两个数组中的每个元素,如果元素匹配,则 boolean 结果返回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.");
因此,“counter”始终与总元素(“size”)的值相同。即使两个数组包含完全不同的值,结果也不会是 0/size。它似乎总是尺寸/尺寸。
我是否错误地比较了数组(查看完整程序),还是我的循环有问题?
最佳答案
使用比较运算符 ==
来比较事物,而不是赋值运算符 =
。但是因为 result
已经是一个 boolean
,所以只需使用 boolean
本身。
改变
if (result = true) {
到
if (result)
关于java - 比较两个数组的数组元素时, boolean 结果始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21562590/