Java 布尔语句不起作用?
下面的代码我采用两个数组并比较它们。当它们都相同时,我会显示正确的消息,但当它们为false时,两条消息都会显示。显示System.out.println(“相同”)的最后一条if语句;即使布尔值为false,也似乎始终显示。这是为什么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] ==
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");
}