Java 布尔语句不起作用?

Java 布尔语句不起作用?,java,loops,boolean,Java,Loops,Boolean,下面的代码我采用两个数组并比较它们。当它们都相同时,我会显示正确的消息,但当它们为false时,两条消息都会显示。显示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] ==

下面的代码我采用两个数组并比较它们。当它们都相同时,我会显示正确的消息,但当它们为false时,两条消息都会显示。显示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");
  } 
}
publicstaticvoidcompararrays(int[]a,int[]n){
布尔b=假;
for(int i=0;i
是赋值运算符。是相等运算符

if (b = true){
应该是

if (b ==true){
或者因为
b
是布尔值:

  if(b) {
更改此项:

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

或者更好

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

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

好吧,您不会将
b
比较为true,而是在执行if语句之前设置它


将if语句更改为
if(b==true)
或简单地将
if(b)

+1用于“或更好”部分。+1用于抵消否决票,因为我认为这是不值得的。这是很明显的问题,我不知道我会寻找什么作为一个没有经验的程序员这个问题的答案。你对这个问题做了重大的改变,这让人很困惑。而是让问题中的错误,并将答案标记为已接受。但是,请修复IDE中的错误;)@User205214,将代码编辑还原到以前的版本,否则以下所有答案都将无效:)别忘了我回滚了最后的更改,因为它的编辑使问题变得毫无意义
if (b){
    System.out.println("identical");
}