我正在尝试检查一个数组是否已满并打印给用户他无法输入更多书籍。
static Object[][] books=new Object[2][];
我问用户的3个值并存储到另一个名为“row”的数组。
Object[]row=new Object[3];
之后,我遍历books数组并检查它内部是否有空值,并添加具有用户给定值的“row”数组。 我遇到的问题是,如果在输入两行值后书籍数组已满,我无法提供任何反馈。
boolean empty=false;
while(empty==false){
for (int i = 0; i < books.length; i++) {
if(books[i]==null){
books[i]=row;
empty=true;
break;
}
}
}
答案 0 :(得分:2)
为什么没有变量
int bookCounter = 0;
您可以在每次添加/删除图书时增加/减少,然后根据您的最大图书数量(我假设为books.length
)进行检查
通过这种方式,您无需循环遍历数组,这效率不高。
答案 1 :(得分:1)
不需要while
循环。 for
循环结束后,请检查您已设置的empty
变量。如果是false
,请将您的反馈提供给用户。
答案 2 :(得分:1)
数组总是满的。甚至每个元素都是null
。如果用10的大小初始化它,那么JVM将分配内存并用默认值填充所有数组位置。什么是:0
表示原始数字和字符类型,false
表示原始布尔类型,null
表示对象。
因此,您的代码不会使用int []。因为不存在任何null
元素。
这就是为什么你没有count()
方法...你可以创建一个名为countNotNull()
的方法。但是你需要长时间对所有数组进行交互。
最佳解决方案是在添加/删除表单数组时使用变量进行计数。如 吉列尔莫·梅里诺说。