布尔声明不起作用?

时间:2013-02-15 17:17:59

标签: java loops boolean

下面的代码我接受两个数组并进行比较。当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");
  } 
}

3 个答案:

答案 0 :(得分:12)

改变这个:

if (b = true){
    System.out.println("identical");
} 

为:

if (b == true){
    System.out.println("identical");
} 

或更好

if (b){
    System.out.println("identical");
} 

您正在分配值而不是比较。

答案 1 :(得分:4)

=是一个赋值运算符。 ==是相等运算符。

if (b = true){

应该是

if (b ==true){

b只是布尔值:

  if(b) {

答案 2 :(得分:1)

嗯,在执行if语句之前,你不会将b与true进行比较,而是 set

将if语句更改为if(b == true)或仅if(b)