我正在尝试编写一个从库存中删除项目的方法。它应该从字符串数组中删除该项目,然后将其余项目随机播放到数组的前面。但是,它不起作用。没有抛出任何错误,但该项目仍在那里。
public static int removeFromInventory(String object, String[] items, int numItems) {
int objectSlot = 0;
boolean objFound = false;
if(numItems>0){
for(int i=0;i>numItems ;i++){
if(object.equalsIgnoreCase(items[i])){
objectSlot = i;
numItems++;
objFound = true;
break;
}
}
if(objFound){
items[objectSlot]=null;
System.out.print(items[objectSlot]);
for(int n=objectSlot; n < items.length -1;n++){
items[n] = items[n+1];
}
items[items.length -1] = null;
objFound = false;
}
}
return numItems;
如果有人能指出我正确的方向那将是伟大的。
答案 0 :(得分:2)
更改
for(int i = 0; i > numItems; i++)
到
for(int i = 0; i < numItems; i++) // Note the < instead of the >
使用它,因为你现在拥有它,你的第一个循环永远不会执行,因此永远不会找到你的项目。
请注意,您还可以通过仅搜索数组直到您点击第一个numItems
条目来消除对null
参数的需要。这不是一个大问题,但可能会使事情变得更简单。例如:
for (int i = 0; i < items.length && items[i] != null; i++)
答案 1 :(得分:1)
首先,您尝试更改以下代码
if(numItems>0){
for(int i=0;i>numItems ;i++){
到
if(numItems>0){
for(int i=0;i<numItems ;i++){
做出改变并继续前进。