布尔声明不起作用?

use*_*514 2 java loops boolean

下面的代码我接受两个数组并进行比较.当thay都是相同的时候,我得到正确的消息显示,但是当它是假的时,两个消息都显示出来.显示System.out.println的最后一个if语句("相同"); 即使布尔值是假的,它似乎总是显示出来.为什么是这样????

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");
  } 
}
Run Code Online (Sandbox Code Playgroud)

Pra*_*mha 12

改变这个:

if (b = true){
    System.out.println("identical");
} 
Run Code Online (Sandbox Code Playgroud)

至:

if (b == true){
    System.out.println("identical");
} 
Run Code Online (Sandbox Code Playgroud)

或更好

if (b){
    System.out.println("identical");
} 
Run Code Online (Sandbox Code Playgroud)

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