我尝试编译时遇到此错误。
imcomparible types:boolean和int
result= (result) && (found_list[i] !=0);
为什么会出现此错误?我该如何解决?
答案 0 :(得分:2)
您正在尝试将类型为boolean的found_list[i]
与类型为int的0
进行比较
然后改变
result= (result) && (found_list[i] !=0);
到
result= (result) && (found_list[i]);
答案 1 :(得分:2)
由于found_list []是一个布尔数组,因此无法与int值进行比较。 (found_list[i] !=0)
错了。
这样做的方法是:
result= (result) && (found_list[i]);
答案 2 :(得分:2)
与c,c ++等语言不同,0
& 1
不是 false
& java中的true
这是一个常见的错误。此外,检查boolean != false
之类的内容与检查boolean
是否为真完全相同。即。
if(b != false)
与
相同if(b)
所以,你可以做到
result = result && found_list[i];
答案 3 :(得分:0)
Boolean只接受True的False作为值,而不像其他数据类型,如int,long,double,short等......
因此,如果result是布尔值,则存储在其中的值也应该是一个True或False的布尔值。
result= (result) && (found_list[i] !=0);
这里(结果)是True of False 。如果你刚刚初始化它并且像
一样离开布尔结果;
然后这里的值为false。如果你在此之前的某处修改了它,那么它将是相应的值。
现在(found_list [i]!= 0);是一种错误的编码方式。如果found_list []是布尔值,则无法将其与int值(在本例中为0)进行比较。
你或者想要做的是 true / false!= 0无法比较。
因此您收到此错误。您可以将其更改为
result= ((result) && (found_list[i]))