Java 循环时返回值混乱

Java 循环时返回值混乱,java,Java,所以我对java还很陌生,我必须在BlueJ的学校做一个练习。它必须是一个船舶租赁服务系统,其中一个输出必须是当天所有船舶租赁的总时间(所有船舶每天仅租赁一次)。对于这个方法,我使用了两个类,hiredBoat和summary。我对开始和结束时间的输入格式为hhmm(int),我将对象hiredBoat放入一个数组中: private ArrayList<hiredBoat> hiredboats; public void addHired(int boatnumber, int

所以我对java还很陌生,我必须在BlueJ的学校做一个练习。它必须是一个船舶租赁服务系统,其中一个输出必须是当天所有船舶租赁的总时间(所有船舶每天仅租赁一次)。对于这个方法,我使用了两个类,hiredBoat和summary。我对开始和结束时间的输入格式为hhmm(int),我将对象hiredBoat放入一个数组中:

private ArrayList<hiredBoat> hiredboats;


public void addHired(int boatnumber, int starttime, int endtime, int usedfuel, boolean damage)
{
   hiredeBoat boat = new hiredBoat(boatnumber, start, end, usedfuel, damage);
    hiredBoats.add(boat);
    boatamount++;
}
我遇到的一个大问题是,当我创建一艘租用的船时,getHour()和getMin()工作得很好,但当我循环将所有的值相加时,它就不工作了

当我循环将所有数据相加时,它不起作用

您可能应该将if语句移动到循环中

int totalhours = 0;
int totalminutes = 0;

for(HiredBoat boat : hiredboats)
{
    totalhours += boat.getHour();
    totalminutes += boat.getMin();

    if(totalminutes >= 60)
    {
        int extrahours = totalminutes / 60;
        totalminutes = totalminutes % 60;
        totalhours += extrahours;
    }
}

但是,我不太理解你的逻辑,不明白为什么不能正确地求和

我知道你从不在方法中声明变量;这意味着您可能使用字段,这些字段在类的所有方法之间共享


尝试声明可以在方法中使用的任何变量。

提示:阅读java命名约定。类名以大写字母开头;始终。除此之外:寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建。将您的问题还原到可以编译和执行的绝对最小值;把这个给我。作为“但当我循环添加所有数据时,它不会”的描述,我们无法提供帮助!你的最后一段是为什么决定不回答这个问题:-)
public void getTotaltimehired()
{
    totalhours = 0;
    totalminutes = 0;
    for(hiredBoat hiredBoat : hiredboats)
    {
        totalhours = totalhours + hiredBoat.getHour();
        totalminutes = totalminutes + hiredBoat.getMin();
    }

    if(totalminutes >= 60)
    {
        extrahours = totalminutes / 60;
        totalminutes = totalminutes % 60;
        totalhours = totalhours + extrahours;
    }

    System.out.println("Total time hired: " + totalhours + " uur en " + totalminutes + " minuten");
}
int totalhours = 0;
int totalminutes = 0;

for(HiredBoat boat : hiredboats)
{
    totalhours += boat.getHour();
    totalminutes += boat.getMin();

    if(totalminutes >= 60)
    {
        int extrahours = totalminutes / 60;
        totalminutes = totalminutes % 60;
        totalhours += extrahours;
    }
}