有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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了,所以非常感谢您的帮助


共 (3) 个答案

  1. # 1 楼答案

    由于0 <= 0,即使listSize==0(即使cars[0]未定义,for循环也将迭代一次

    因此,如果printReport“什么也不做”(包括抛出异常),最有可能的原因是if语句中的表达式的计算结果为false

    如果您在尝试调用printReport时没有向cars添加80辆汽车,则可能会发生这种情况

  2. # 2 楼答案

    创建CarDealerShip类的对象时,变量listSize的值为0,而“cars”数组的长度为80个元素。 因此,基本上,如果失败: if(cars.length==列表大小)。 因此,永远不会输入for循环。 这就是您提供的代码所能表达的全部内容

  3. # 3 楼答案

    删除此行:

    if (cars.length==listSize)
    

    因为cars是一个长度为80的数组,在创建此类时,变量listSize的值为0。因此,不执行for循环