我想弄清楚爲什麼&
運算符拋出一個異常並暫停我的程序,但是當我使用&&
運算符時,程序沒有錯誤地工作。
下面是代碼的所述部分:Java&和&&運營商的麻煩
books
是對象Book
的ArrayList。areYouBook
返回true
如果書的ISBN我正在尋找匹配a
。- 方法
findBook
檢查我是否已經在arraylist中擁有該書。當該方法返回null
時,這意味着我必須創建該書並將其添加到ArrayList
。
非常感謝您的幫助!
public Book findBook(int a){
int i=0;
while((i<(books.size()))&!((books.get(i)).areYouBook(a)))
i++;
if(i<(books.size()))
return books.get(i);
else
return null;
}
因爲'&'是[按位與運算符](https://docs.oracle.com/javase/tutorial/java/nutsandbolts /operators.html),而不是邏輯AND。 – domsson
此外,我強烈建議您始終使用大括號{}}來代替塊('while,'if','else')並正確縮進代碼。這不僅難以閱讀和理解,而且必然會以您不想要的方式執行。 – domsson
[&和&&之間的區別](http://stackoverflow.com/questions/5564410/difference-between-and) – matoni