2012-09-21 55 views
0

当我尝试编译时出现此错误。不兼容的数据类型:布尔型和int

imcomparible类型:布尔和int

result= (result) && (found_list[i] !=0); 

为什么我得到这个错误?我如何解决它??

+0

found_list的类型是什么? –

+0

boolean [] found_list = new boolean [num_of_rotors]; – user1514362

+0

如果结果为int类型,则由于(result)&&(found_list [i]!= 0)是布尔表达式,因此出现错误。也(结果)将是错误的。结果的类型是什么? –

回答

2

您正在尝试比较boolean类型的found_list[i] int类型的0

然后改变

result= (result) && (found_list[i] !=0); 

result= (result) && (found_list[i]); 
2

由于found_list []是一个布尔数组,你可以与int值比较。 (found_list[i] !=0)是错误的。

的方式做到这一点是:

result= (result) && (found_list[i]); 
2

不像语言C,C++和许多其他0 & 1false &在java中true

这是一个常见的错误。此外,检查诸如boolean != false之类的内容与检查boolean是否为真完全相同。即

if(b != false) 

是相同

if(b) 

所以,你可以做

result = result && found_list[i]; 
0

布尔只需要真正的假的值,并没有别的像其他数据类型,如int,长,双,短等...

因此,如果结果是一个布尔值,你存储在它的值也应该是一个博不管是真还是假,都是这样的。

result= (result) && (found_list[i] !=0); 

这里(结果)是TRUE的假。如果你刚刚intialized并留下像

布尔结果;

然后,这里的值是false.Else,如果您在此之前修改了它,它将成为相应的值。

Now(found_list [i]!= 0);是一种错误的编码方式。如果found_list []是一个布尔值,则无法将其与int值进行比较(在本例中为0)。

你或者想要做的是 true/false!= 0这是无法比较的。

因此你得到这个错误。你可以改为

result= ((result) && (found_list[i])) 
相关问题