java for循环算法不更新变量
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了,所以非常感谢您的帮助
# 1 楼答案
由于
0 <= 0
,即使listSize==0
(即使cars[0]
未定义,for
循环也将迭代一次因此,如果
printReport
“什么也不做”(包括抛出异常),最有可能的原因是if
语句中的表达式的计算结果为false
如果您在尝试调用
printReport
时没有向cars
添加80辆汽车,则可能会发生这种情况# 2 楼答案
创建CarDealerShip类的对象时,变量listSize的值为0,而“cars”数组的长度为80个元素。 因此,基本上,如果失败: if(cars.length==列表大小)。 因此,永远不会输入for循环。 这就是您提供的代码所能表达的全部内容
# 3 楼答案
删除此行:
因为cars是一个长度为80的数组,在创建此类时,变量listSize的值为0。因此,不执行for循环