public CarDealerShip() {
cars = new Car[80];
listSize=0;
}
public void addNewCar (String model, int year, int price, String color) {
m = model;
y = year;
p = price;
c = color;
cars [listSize] = new NewCar (m,y,p,c);
listSize++;
}
public void addUsedCar (String model, int year, int price, boolean rusty) {
m = model;
y = year;
p = price;
r = rusty;
cars [listSize] = new UsedCar(m,y,p,r);
listSize++;
}
public String printReport() {
String list="";
if (cars.length==listSize)
for (int i =0; i <= listSize; i++)
list+=cars[i].toString()+"\n";
return list;
}
在方法printReport
中,for循环假设更新变量列表但根本不执行任何操作。已经有一段时间了,因为我再次使用Java,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
当您创建CarDealerShip类的对象时,变量listSize的值为0,而'cars'数组的长度为80个元素。 所以基本上这个IF失败了: if(cars.length == listSize)。 因此,永远不会输入for循环。 这就是您提供的代码中可以说的全部内容。
答案 1 :(得分:0)
自0 <= 0
起,即使for
(即使未定义listSize==0
),cars[0]
循环也会迭代一次。
所以如果printReport
&#34;什么都不做&#34; (包括抛出异常),最可能的原因是if
语句中的表达式求值为false
。
如果您在尝试拨打cars
时未向printReport
添加80辆汽车,则可能会发生这种情况。
答案 2 :(得分:0)
删除此行:
if (cars.length==listSize)
因为cars是一个长度为80的数组,并且变量listSize在创建此类时的值为0。所以for循环没有被执行。