2012-09-21 58 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])) 
相關問題