我想弄清楚为什么&
运算符抛出一个异常并暂停我的程序,但是当我使用&&
运算符时,程序没有错误地工作。
下面是代码的所述部分: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