比较两个int数组中的元素时遇到问题。我使用for循环来比较两个数组中的每个元素,如果元素匹配,则布尔结果返回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。它似乎总是大小/尺寸。
我是否错误地比较了数组(参见完整程序),或者我的循环是否有问题?
答案 0 :(得分:2)
使用比较运算符==
来比较事物,而不是赋值运算符=
。但由于result
已经是boolean
,因此只需使用boolean
本身。
更改
if (result = true) {
到
if (result)
答案 1 :(得分:1)
= is use to assign the value and to compare the value use `==`
因此需要更改以下代码:
if (result == true) {
counter++;
}
或更好的解决方案
if (result) {
counter++;
}