在我的代码中,我创建了一个名为Inventory的类,用于将我的信息存储在数组中。我创建了一个添加字符串的方法,以及一个显示存储在数组中的所有信息的方法。我的代码将在执行过程中出现问题,但它不会显示我存储在数组中的任何信息,只是一个空白的命令窗口。这是男人班。
public class Game {
public static void main(String[] args) {
Inventory playersInventory = new Inventory();
playersInventory.addInventory("Knife");
playersInventory.addInventory("Food");
playersInventory.addInventory("Water");
playersInventory.displayInventory();
}
}
这里是库存类
public class Inventory {
private String[] inventoryItem = new String[10];
public void addInventory(String item){
int x = 0;
while (true) {
if (inventoryItem[x]== null){
item = inventoryItem[x];
break;
}
else {
x++;
}
}
}
public void displayInventory(){
int x = 0;
while (true){
if (inventoryItem[x] == null){
break;
}
else{
System.out.println(inventoryItem[x] + "\n");
x++;
}
}
}
}
答案 0 :(得分:1)
问题出在这一行:
item = inventoryItem[x];
=
评估右侧的表达式,并将结果分配给左侧的变量。所以你在那里做的是将inventoryItem[x]
分配给item
。
换句话说,你没有改变数组,而是为参数赋值,这几乎没有任何作用。
我想你想把参数添加到数组中。所以你的任务陈述应该是相反的方式:
inventoryItem[x] = item;
实际上,为了避免混淆,只需使用ArrayList
!
public class Inventory {
private ArrayList<String> inventoryItem = new ArrayList<>();
public void addInventory(String item){
inventoryItem.add(item);
}
public void displayInventory(){
for (Sting item: inventoryItem) {
if (item != null) {
System.out.println(item + "\n");
}
}
}
}
不是那么干净吗?
答案 1 :(得分:0)
您的代码行
item = inventoryItem[x];
应该是
inventoryItem[x] = item;
您正在将inventoryItem[x];
分配给item
,因为您需要反向。
答案 2 :(得分:0)
您没有将项目放在数组“inventoryItem”中,因此没有显示任何信息。
将代码更改为以下以填充数组
if (inventoryItem[x]== null){
inventoryItem[x]=item ;
break;
}
答案 3 :(得分:0)
指定值inventoryItem [x] = item;