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