當我嘗試編譯時出現此錯誤。不兼容的數據類型:布爾型和int
imcomparible類型:布爾和int
result= (result) && (found_list[i] !=0);
爲什麼我得到這個錯誤?我如何解決它??
當我嘗試編譯時出現此錯誤。不兼容的數據類型:布爾型和int
imcomparible類型:布爾和int
result= (result) && (found_list[i] !=0);
爲什麼我得到這個錯誤?我如何解決它??
您正在嘗試比較boolean類型的found_list[i]
int類型的0
然後改變
result= (result) && (found_list[i] !=0);
到
result= (result) && (found_list[i]);
由於found_list []是一個布爾數組,你可以與int值比較。 (found_list[i] !=0)
是錯誤的。
的方式做到這一點是:
result= (result) && (found_list[i]);
不像語言C,C++和許多其他0
& 1
不false
&在java中true
。
這是一個常見的錯誤。此外,檢查諸如boolean != false
之類的內容與檢查boolean
是否爲真完全相同。即
if(b != false)
是相同
if(b)
所以,你可以做
result = result && found_list[i];
布爾只需要真正的假的值,並沒有別的像其他數據類型,如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]))
found_list的類型是什麼? –
boolean [] found_list = new boolean [num_of_rotors]; – user1514362
如果結果爲int類型,則由於(result)&&(found_list [i]!= 0)是布爾表達式,因此出現錯誤。也(結果)將是錯誤的。結果的類型是什麼? –