下面的代码我接受两个数组并进行比较。当thay都是相同的时候,我得到正确的消息显示,但是当它是假的时,两个消息都显示出来。显示 System.out.println(“相同”); 的最后一个if语句似乎总是显示,即使布尔值为false。这是为什么????
public static void compareArrays(int[] a, int[] n){
boolean b = false;
for (int i = 0; i < n.length; i++) {
if (n[i] == a[i]) {
b = true;
} else {
b = false;
System.out.println("different");
break;
}
}
if (b = true){
System.out.println("identical");
}
}
答案 0 :(得分:12)
改变这个:
if (b = true){
System.out.println("identical");
}
为:
if (b == true){
System.out.println("identical");
}
或更好
if (b){
System.out.println("identical");
}
您正在分配值而不是比较。
答案 1 :(得分:4)
答案 2 :(得分:1)
嗯,在执行if语句之前,你不会将b
与true进行比较,而是 set 。
将if语句更改为if(b == true)
或仅if(b)
。